-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.mix.js
More file actions
94 lines (90 loc) · 2.37 KB
/
webpack.mix.js
File metadata and controls
94 lines (90 loc) · 2.37 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const argv = require('yargs').argv;
const glob = require('glob');
const mix = require('laravel-mix');
const build = require('./tasks/build.js');
const PurgecssPlugin = require('purgecss-webpack-plugin');
const CsstyleExtractor = require('./csstyle-extractor.js');
// Mix plugins
require('laravel-mix-imagemin');
require('laravel-mix-tailwind');
let env = argv.e || argv.env || 'local';
let port = argv.p || argv.port || 3000;
mix.options({
clearConsole: false,
});
mix.setPublicPath('site/content/assets');
mix.webpackConfig({
module: {
rules: [
{
test: /\.scss$/,
loader: 'import-glob-loader'
},
],
},
plugins: [
build.jigsaw,
build.browserSync({baseDir: 'build/{env}'}),
build.watch({
files: [
'config*.php',
'tailwind.js',
'package.json',
'webpack.mix.js',
'tailwind/**/*.js',
'site/content/**/*.md',
'site/content/**/*.php',
'site/assets/**/*.scss',
'!site/content/assets/*'
],
}),
mix.inProduction() ? new PurgecssPlugin({
paths: glob.sync('site/content/**/*.@(php|md)'),
extractors: [
{
extractor: CsstyleExtractor,
extensions: ['html', 'php', 'js', 'md'],
},
],
whitelist: [
'pre',
'blockquote',
],
}) : null,
].filter(Boolean),
});
mix.babelConfig({
'plugins': [
'transform-class-properties',
['prismjs', {
'languages': [
'clike',
'markup',
'css',
'scss',
'javascript',
'bash',
],
'plugins': [
'line-numbers',
'normalize-whitespace',
],
'theme': 'default',
'css': true,
}],
],
});
mix.js('site/assets/js/app.js', 'js')
.tailwind()
.sass('site/assets/sass/app.scss', 'css')
.imagemin(
[
'img/**/*.@(jpg|jpeg|png|gif|svg)',
'favicons/**/*.!(psd)',
],
{
context: 'site/assets',
}
)
.sourceMaps(true, 'source-map')
.version();