前言
- 因为有时候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
效果
