forked from loilo/faction
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.mix.js
More file actions
56 lines (49 loc) · 1.72 KB
/
webpack.mix.js
File metadata and controls
56 lines (49 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const mix = require('laravel-mix')
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
// Add rule to pipe every imported *.worker.js file through workerize-loader
// and (for a lack of being able to declare worker output files) clean up old
// worker files
const anymatch = require('anymatch')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
mix.extend('handleWorkers', webpackConfig => {
webpackConfig.plugins.push(
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns: ['*.worker.js'],
}),
)
const originalJsRule = webpackConfig.module.rules.find(rule =>
anymatch(rule.test, 'file.js'),
)
webpackConfig.module.rules.unshift({
...originalJsRule,
test: /\.worker\.js$/,
use: ['workerize-loader', ...originalJsRule.use],
})
})
mix
.js('resources/js/app.js', 'public/js')
.js('resources/js/helpers/toast.js', 'public/js')
.sass('resources/sass/stylesheet.scss', 'public/css')
.sass('resources/sass/toast.scss', 'public/css')
.sass('resources/sass/package-readme.scss', 'public/css')
.sass('resources/sass/package-versions.scss', 'public/css')
.sass('resources/sass/package-relations.scss', 'public/css')
.styles(
[require.resolve('modern-normalize')],
'public/css/modern-normalize.css',
)
.sourceMaps()
.copyDirectory('resources/fonts', 'public/fonts')
.handleWorkers()
if (mix.inProduction()) {
mix.version()
}