-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.mix.js
More file actions
35 lines (29 loc) · 1.04 KB
/
webpack.mix.js
File metadata and controls
35 lines (29 loc) · 1.04 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
const mix = require('laravel-mix');
const fs = require('fs');
const path = require('path');
const isFile = (pathItem) => !!path.extname(pathItem);
const mapScripts = (fromDir, toDir) => {
let dirs = fs.readdirSync(fromDir, 'utf8');
dirs.forEach(subDir => {
if (isFile(`${fromDir}/${subDir}`)) {
// Define o nome do arquivo de saída
const outputFileName = mix.inProduction()
? `${path.basename(subDir, path.extname(subDir))}.min.js`
: subDir;
mix.js(`${fromDir}/${subDir}`, `${toDir}/${outputFileName}`);
}
});
}
mix
.sass('src/sass/style.scss', 'dist/css/')
.js('src/js/main.js', 'dist/js/');
mapScripts('src/js/modules/', 'dist/js/modules/');
// Executa a minificação apenas em produção para os arquivos do diretório de módulos
if (mix.inProduction()) {
fs.readdirSync('dist/js/modules/').forEach(file => {
if (isFile(`dist/js/modules/${file}`) && !file.endsWith('.min.js')) {
mix.minify(`dist/js/modules/${file}`);
}
});
// mix.version();
}