提问人:Richard 提问时间:8/15/2015 更新时间:8/5/2023 访问量:627
如何在同一个browserify命令中缩小和分解捆绑文件?
How to minify and factor-bundle files in the same browserify command?
问:
我目前有这个命令,我用它来捆绑我的文件,并将所有通用内容拉到一个通用文件中:factor-bundle
browserify index.js bar-charts.js list-filter.js dashboard.js
-p [ factor-bundle -o ../../static/js/index.js -o ../../static/js/bar-chart.js -o ../../static/js/list-filter.js -o ../../static/js/dashboard.js ]
-o ../../static/js/common.js
我以前也使用过这个命令来丑化单个文件:
browserify index.js | uglifyjs > ../../static/js/index.min.js
如何在同一命令中将文件与 组合在一起,并用 缩小它们?factor-bundle
uglifyjs
我在 factor-bundle 文档中找到了这个示例,但我真的不明白如何适应它。
(如果效果更好,我也可以使用两个命令。我只想以缩小和合并的文件结束!
答:
我碰巧最近一直在研究这个领域,偶然发现了我认为可能能够帮助你的东西。
browserify files/*.js \
-p [ ../ -o 'uglifyjs -cm | tee bundle/`basename $FILE` | gzip > bundle/`basename $FILE`.gz' ] \
| uglifyjs -cm | tee bundle/common.js | gzip > bundle/common.js.gz
我没有过多地涉足 browserify,但对我来说,这看起来好像只是将 factor-bundle 的输出输送到 uglify 中。
来源: https://gist.github.com/substack/68f8d502be42d5cd4942
希望这对某人有所帮助
为了在单个命令中缩小和捆绑文件,您可以使用运算符从终端在一行中执行多个命令(即 、)。&&
browserify
uglifyjs
详
为了单独缩小每个文件,我们可以为每个文件链接多个命令,但更简洁的方法是使用该模块,它允许将多个文件单独缩小到单个文件/文件夹(在您的例子中,是一个文件夹)。此模块的警告是,我们不能重命名单个文件(例如,到 ),因此,如果重命名文件是严格要求,您可以继续使用 uglifyjs 并像上面提到的那样链接命令。uglifyjs
uglifyjs-folder
index.js
index.min.js
假设使用,我已将缩小文件的目标设置为生产就绪文件夹,方法是包括 ,其中独立缩小每个文件并指定缩小文件的目标文件夹(有关详细信息,请参阅文档)。uglifyjs-folder
./static/js/min/
-eo
e
o
法典
方法 1:终端命令
确保您的依赖项已全局安装在您的系统上(例如,)。终端命令如下:npm i -g uglifyjs-folder
browserify index.js bar-charts.js list-filter.js dashboard.js -p [ factor-bundle -o ../../static/js/index.js -o ../../static/js/bar-chart.js -o ../../static/js/list-filter.js -o ../../static/js/dashboard.js ] -o ../../static/js/common.js && uglifyjs-folder ../../static/js -eo ../../static/js/min
方法 2:NPM 脚本
或者,假设你的项目使用的是 npm(或 yarn),你可以访问 和 命令并将其重构为单独的 npm 脚本,并通过在项目的根目录(即 where is located)中运行 terminal 命令来一起执行它们。npm 脚本定义如下:package.json
browserify
uglifyjs
npm run build
package.json
"scripts": {
"bundle": "browserify index.js bar-charts.js list-filter.js dashboard.js -p [ factor-bundle -o ../../static/js/index.js -o ../../static/js/bar-chart.js -o ../../static/js/list-filter.js -o ../../static/js/dashboard.js ] -o ../../static/js/common.js",
"minify": "uglifyjs-folder ../../static/js -eo ../../static/js/min",
"build": "npm run bundle && npm run minify"
}
希望这有帮助!
评论