分享一个Nodejs自动压缩编译JS的小工具
分享一个Nodejs自动压缩编译JS的小工具
本人是新手中的新手,刚开始学习Node。 此工具基于NodeJS以及Google Closure Compiler。 欢迎板砖,吐槽,任何伺候! 希望可以跟大家多学习。
此工具用于开发阶段,可以在用户在编辑JS时,自动合并压缩编译成一个文件。
亲们使用需要安装Node 以及 JRE 将待编译的js文件放入lib中,并编辑_jsfiles.list文件,按顺序添加他们的文件名。 完后打开compress.bat即可自动进行编译。
地址为: https://github.com/popeyeaj/SEEUTOPIA/tree/master/nodeJsCompress
3 回复
分享一个Nodejs自动压缩编译JS的小工具
大家好,我是新手中的新手,刚开始学习Node.js。今天想跟大家分享一个我制作的小工具,它可以帮助我们在开发过程中自动合并、压缩和编译JavaScript文件。
工具介绍
此工具基于Node.js以及Google Closure Compiler,旨在简化开发过程中的静态资源处理工作。它能够自动将多个JS文件合并并压缩成一个文件,从而减少HTTP请求的数量,提高页面加载速度。
使用说明
-
环境需求:使用本工具前,需要先安装Node.js和JRE(Java Runtime Environment)。
-
文件结构:
lib
目录下存放待编译的JS文件。_jsfiles.list
文件用于指定待编译文件的顺序。
-
操作步骤:
- 将需要编译的JS文件放入
lib
目录。 - 编辑
_jsfiles.list
文件,按顺序列出所有需要编译的JS文件名称。 - 运行
compress.bat
脚本,开始自动编译过程。
- 将需要编译的JS文件放入
示例代码
_jsfiles.list
// 按顺序列出所有JS文件
app.js
utils.js
main.js
compress.bat
@echo off
node compress.js
compress.js
const fs = require('fs');
const path = require('path');
const { exec } = require('child_process');
const fileList = fs.readFileSync('_jsfiles.list', 'utf8').split('\n').map(file => file.trim()).filter(file => file !== '');
const outputFilePath = path.join(__dirname, 'output.min.js');
let combinedContent = '';
// 合并文件内容
fileList.forEach(file => {
const filePath = path.join(__dirname, 'lib', file);
const fileContent = fs.readFileSync(filePath, 'utf8');
combinedContent += fileContent + '\n';
});
// 将合并后的文件内容写入临时文件
fs.writeFileSync(path.join(__dirname, 'temp.js'), combinedContent);
// 使用Google Closure Compiler压缩JS文件
exec(`java -jar compiler.jar --js=temp.js --js_output_file=${outputFilePath}`, (error, stdout, stderr) => {
if (error) {
console.error(`执行错误: ${stderr}`);
return;
}
console.log(`输出文件路径: ${outputFilePath}`);
});
获取源码
如果您对这个小工具感兴趣,可以前往以下GitHub链接获取完整源码:
希望这个小工具能对大家有所帮助,欢迎大家提出宝贵的意见和建议。
用UglifyJS吧,不需要JRE的~~