刚开始使用browserify,但是我找不到有关如何使其散布在最小输出中的文档。
所以我看起来像:
$> browserify main.js > bundle.js --minified
Answers:
通过uglifyjs传递它:
browserify main.js | uglifyjs > bundle.js
您可以使用npm进行安装,如下所示:
npm install -g uglify-js
或使用uglifyify转换,它“在通过Browserify处理Uglify的“挤压”转换之前为您带来了好处,这意味着您可以删除有条件的代码路径。
在花了几个小时研究如何构建新的构建过程之后,我认为其他人可能会从我最终所做的事情中受益。我正在回答这个老问题,因为它在Google中显得很高。
我的用例比OP要求的要复杂得多。我有三种构建方案:开发,测试,生产。由于大多数专业开发人员将有相同的要求,因此我认为超出原始问题的范围是可以原谅的。
在开发中,每当JavaScript文件更改时,我都会使用watchify来构建带有源映射的未压缩包。我不希望丑陋的步骤,因为我希望在完成Alt + Tab键浏览器以刷新之前完成构建,并且无论如何在开发过程中都没有任何好处。为此,我使用:
watchify app/index.js --debug -o app/bundle.js -v
对于测试,我想要与生产完全相同的代码(例如uglified),但我还想要一个源映射。我通过以下方式实现了这一点:
browserify app/index.js -d | uglifyjs -cm -o app/bundle.js --source-map "content=inline,filename='bundle.js',url='bundle.js.map'"
对于生产,使用uglify压缩代码,并且没有源映射。
browserify app/index.js | uglifyjs -cm > app/bundle.js
笔记:
我在Windows 7,MacOS High Sierra和Ubuntu 16.04上使用了这些说明。
我已停止使用minifyify,因为它不再维护。
也许有比我分享的更好的方法。我已经读过,在与browserify结合之前,通过丑化所有源文件显然可以获得更好的压缩效果。如果您有更多时间花在我上面,那么您不妨调查一下。
如果尚未安装watchify,uglify-js或browserify,请使用npm安装它们:
npm install -g browserify
npm install -g watchify
npm install -g uglify-js
如果您安装了旧版本,建议您升级。特别是uglify-js,因为它们对命令行参数进行了重大更改,从而使Google中出现的许多信息无效。
我喜欢terser,它具有对ES6 +的支持以及良好的压缩能力。
browserify main.js | terser --compress --mangle > bundle.js
全局安装:
npm i -g terser