在Debian上压缩JS文件前,需先安装Node.js和npm(Node包管理器),这是使用多数压缩工具的前提。通过以下命令安装稳定版本:
sudo apt update
sudo apt install nodejs npm
安装完成后,可通过node -v和npm -v验证安装是否成功。
Terser是UglifyJS的升级版,支持ES6+语法,是当前Debian环境下推荐的JS压缩工具。
npm install terser -g
input.js(原始文件)压缩为output.min.js(压缩后文件),并开启代码混淆(-m)和压缩(-c):terser input.js -o output.min.js -c -m
cat合并文件再压缩,或使用构建工具(如Webpack)自动化处理。若项目使用ES5及以下语法,可选择UglifyJS(需注意不支持ES6+)。
sudo apt install uglify-js
uglifyjs dist/bundle.js -o dist/bundle.min.js -c -m
适用于维护旧项目的场景。通过Webpack可将压缩步骤整合到项目构建流程中,实现自动化和更复杂的优化(如代码分割)。
npm install --save-dev webpack webpack-cli terser-webpack-plugin
webpack.config.js中添加Terser插件,开启代码压缩:const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
optimization: {
minimize: true,
minimizer: [new TerserPlugin()], // 启用Terser压缩
},
};
npx webpack即可生成压缩后的bundle.js。压缩前对代码进行质量检查和兼容性处理,能提升压缩效果并避免潜在错误。
sudo apt install eslint
eslint --init
eslint src/ # 检查src目录下的代码
npm install --save-dev @babel/core @babel/cli @babel/preset-env
创建.babelrc配置文件:{ "presets": ["@babel/preset-env"] }
运行转换:npx babel src --out-dir dist
转换后的代码存入dist目录,再进行压缩。若需压缩JS格式的日志文件(如前端上报的日志),可使用Debian自带的gzip或tar工具:
gzip -k your_log_file.js
logs.tar.gz:tar -czvf logs.tar.gz your_log_file1.js your_log_file2.js
#!/bin/bash
LOG_DIR="/path/to/logs"
DATE=$(date +"%Y-%m-%d")
tar -czvf "${LOG_DIR}/logs_${DATE}.tar.gz" ${LOG_DIR}/*.js
find ${LOG_DIR} -name "*.js" -mtime +30 -exec rm {} \;
添加到cron任务(每天凌晨1点运行):0 1 * * * /path/to/compress_logs.sh
以上技巧覆盖了Debian环境下JS文件压缩的全流程,从基础环境到自动化构建,可根据项目需求选择合适的方法。