-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwebpack.mix.js
88 lines (80 loc) · 1.78 KB
/
webpack.mix.js
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
const mix = require('laravel-mix');
const ImageminPlugin = require('imagemin-webpack-plugin').default;
const CopyWebpackPlugin = require('copy-webpack-plugin');
const imageminMozjpeg = require('imagemin-mozjpeg');
const StyleLintPlugin = require('stylelint-webpack-plugin');
mix
.setPublicPath('./dist');
mix
.sass(
'source/styles/main.scss',
'styles.bundle.css',
{ sassOptions: { outputStyle: 'compressed' } }
)
.options({
postCss: [
require('css-declaration-sorter')({
order: 'smacss'
})
],
autoprefixer: {
options: {
browsers: [
'last 6 versions',
]
}
}
});
mix
.combine([
'source/scripts/includes/*',
'source/scripts/main.js'
],
'dist/scripts.bundle.js'
);
mix
.options({
processCssUrls: false,
postCss: [
require('postcss-nested-ancestors'),
require('postcss-nested'),
require('postcss-import'),
require('tailwindcss'),
require('autoprefixer'),
]
});
mix
.webpackConfig({
plugins: [
new CopyWebpackPlugin({
patterns: [
{ from: "source/images", to: "images" },
{ from: "source/icons", to: "icons" },
{ from: "source/fonts", to: "fonts" },
],
}),
new ImageminPlugin({
test: /\.(jpe?g|png|jpg|gif|svg)$/i,
plugins: [
imageminMozjpeg({
quality: 80,
})
]
}),
new StyleLintPlugin({
files: './source/styles/**/*.scss',
configFile: './.stylelintrc'
}),
],
});
mix
.browserSync({
proxy: 'http://localhost:8888',
open: 'external',
port: 3000,
files: ['*.php', 'includes/**/*.php', 'views/**/*.php', 'source/**/**/*']
});
mix
.disableNotifications();
mix
.version();