前言
- 因為有時候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
效果
