His*_*ako 4 javascript minify node.js coffeescript express
我正在为express.js应用程序构建一个漂亮的小"资产管道",但我对javascript文件的压缩步骤有问题
scripts = (fs.readFileSync(file) for file in filelist)
result = scripts.join("\n\n") # concat
Run Code Online (Sandbox Code Playgroud)
到目前为止,事情正在按预期工作(逻辑本身是用coffeescript编写的).合并JS文件后的下一步是缩小它们.但这是我的问题:当我在生产模式中启动我的快速应用程序时,我希望在我编写的连接中间件中执行此操作.
我需要一个解决方案,可以缩小给定blob的javascript内容,而不将结果写入磁盘(!),换句话说:一个函数执行缩小并直接返回结果作为结果值.(不,也没有web服务.)它应该像这样使用:
minified_result = awesomeMinifyFunction( result )
Run Code Online (Sandbox Code Playgroud)
原始的处理性能是不是说对我很重要,无论是压缩的水平,我需要的只是一些没有麻烦以这种方式工作.
有谁知道合适的解决方案?提前致谢!
我建议你看看一个基于JavaScript的缩小器,比如UglifyJS2.
npm install uglify-js
Run Code Online (Sandbox Code Playgroud)
它可以以编程方式在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);
Run Code Online (Sandbox Code Playgroud)
或者你可以
var result = scripts.join("\n\n"); # concat
result = UglifyJS.minify(result, {fromString: true});
console.log(result.code);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2437 次 |
| 最近记录: |