前言
- 因为有时候js文件没有npm包,或者需要修改,只能引入静态的js,那么这个时候就可以对js进行压缩了。
- 我其实想通过vite、webpack等插件进行压缩的,可是他都不能定位到
public
目录下面的文件,所以我只能自己压缩了。
- 编写下面的脚本可以放在vite、webpack配置文件中,但是不想这样操作,就是有没有这样的插件。欢迎评论推荐。
安装uglifyjs依赖
npm install uglifyjs -g
uglifyjs file.js -o out.js
const fs = require('fs');
const path = require('path');
const { exec } = require('child_process');
function getJSFiles(dir) {
const files = [];
function traverseDirectory(currentDir) {
const entries = fs.readdirSync(currentDir, { withFileTypes: true });
for (const entry of entries) {
const entryPath = path.join(currentDir, entry.name);
if (entry.isDirectory()) {
traverseDirectory(entryPath);
} else if (path.extname(entry.name) === '.js') {
files.push(entryPath);
}
}
}
traverseDirectory(dir);
return files;
}
function compressFile(file) {
exec(`uglifyjs ${file} -o ${file}`, (error, stdout, stderr) => {
if (error) {
console.error(`执行命令时出错: ${error.message}`);
return;
}
if (stderr) {
console.error(`命令执行时出现错误: ${stderr}`);
return;
}
console.log(`文件压缩成功: ${file}`);
});
}
const directoryPath = 'c:\\x\\x\\x';
const jsFiles = getJSFiles(directoryPath);
console.log(jsFiles);
for (const file of jsFiles) {
compressFile(file);
}
node index.js
效果
