-
Notifications
You must be signed in to change notification settings - Fork 9
/
webpack.config.js
39 lines (34 loc) · 1.06 KB
/
webpack.config.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
const {minify} = require('terser');
const fs = require('fs');
const path = require('path');
const jsSourceDirectory = 'js';
const filesToMinify = fs.readdirSync('js');
const distDirectory = 'dist';
const minifyConfig = {
compress: false,
mangle: false,
module: true,
sourceMap: false,
output: {
comments: 'some'
}
};
if (!fs.existsSync(distDirectory)) {
fs.mkdirSync(distDirectory);
}
async function minifyAndSaveFile(inputFilePath, outputFilePath) {
const code = fs.readFileSync(inputFilePath, 'utf8');
const minified = await minify(code, minifyConfig);
fs.writeFileSync(outputFilePath, minified.code);
}
filesToMinify.forEach((file) => {
const inputFilePath = path.join(jsSourceDirectory, file);
const outputFilePath = path.join(distDirectory, file.replace('.js', '.min.js'));
minifyAndSaveFile(inputFilePath, outputFilePath)
.then(() => {
console.log(`Minified and saved: ${file}`);
})
.catch((error) => {
console.error(`Error minifying ${file}: ${error}`);
});
});