javascript - 在内存中以编程方式缩小 Javascript

标签 javascript node.js express coffeescript minify

我正在为 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/

相关文章:

javascript - JavaScript 程序的执行时间

javascript - 使用 Application Insights NodeJ 进行遥测处理器内的异步操作

javascript - 我正在使用 Rails Admin gem,但我无法在不重新加载页面的情况下发布我的产品

javascript - 将 redux store 实现为函数而不是类的原因是什么?

node.js - Jest .config.ts : "registerer.enabled is not a function" error when running jest from Github Actions

node.js - 当 req body json 太重时 ExpressJS CORS 错误

javascript - "Type RootQueryType must define one or more fields."}

node.js - 如何在一个 Express app.get() 中使用多个 res.render()

javascript - 在 Bootstrap 中更改事件列表项的背景颜色

javascript - 等待图像在 Javascript 中加载