我正在为 express.js 应用程序构建一个漂亮的小“ Assets 管道”,但我对 javascript 文件的压缩步骤有疑问
scripts = (fs.readFileSync(file) for file in filelist)
result = scripts.join("\n\n") # concat
到目前为止,一切都按预期工作(逻辑本身是用 coffeescript 编写的)。合并 JS 文件后的下一步是缩小它们。但这是我的问题:当我在生产模式下启动我的 express-app 时,我想从我写的一个连接中间件中做这个“热”。
我需要一个解决方案,可以缩小给定的 javascript 内容,无需将结果写入磁盘(!),换句话说:一个进行缩小并直接返回结果的函数结果值。 (不,也没有网络服务。)它应该像这样使用:
minified_result = awesomeMinifyFunction( result )
原始处理性能对我来说不是重要的,压缩级别也不重要,我只需要可以轻松工作的东西。
有人知道合适的解决方案吗?提前致谢!
最佳答案
我建议您查看一种基于 JavaScript 的压缩器,例如 UglifyJS2 .
npm install uglify-js
它可以在 Node.JS 应用程序中以编程方式使用:
var UglifyJS = require("uglify-js");
// you could pass multiple files (rather than reading them as strings)
var result = UglifyJS.minify([ "file1.js", "file2.js", "file3.js" ]);
console.log(result.code);
或者你可以
var result = scripts.join("\n\n"); # concat
result = UglifyJS.minify(result, {fromString: true});
console.log(result.code);
关于javascript - 在内存中以编程方式缩小 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18878011/