如何在同一个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-folder
模块,它允许将多个文件单独缩小到单个文件/文件夹(在您的情况下,是一个文件夹)。这个模块的警告是,我们不能重命名单个文件(例如,index.js
到index.min.js
),所以如果重命名文件是一个严格的要求,你可以继续使用uglifyjs,并像上面提到的链接命令。
假设使用了uglifyjs-folder
,我通过包含-eo
将最小化文件的目标设置为生产就绪文件夹./static/js/min/
,其中e
独立地最小化每个文件,o
指定最小化文件的目标文件夹(有关更多信息,请参阅文档)。
方式一:终端命令
确保您的依赖项在您的系统上是全局安装的(例如,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
方法二:NPM脚本或者,假设你的项目使用npm(或yarn),你可以访问package.json
并将browserify
和uglifyjs
命令重构为单独的npm脚本,并通过在项目的根目录(即package.json
所在的位置)中运行终端命令npm run build
来一起执行它们。npm脚本定义如下:
"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"
}
希望这对你有帮助!
- 最小化时暂停Javascript动画
- 全局窗口热键在最小化chrome窗口时调用js函数
- Grunt-将多个文件最小化/处理为一个文件
- Bootstrap一页导航Fluid网站最小化问题
- 最小化js时出现Gulp错误
- 最小化CSS/JS文件,并使用命令行创建一个文件
- 在Dojo构建期间,在最小化期间关闭文件编译
- Angular 2捆绑和最小化
- 剑道窗口还原在最小化然后还原时不调用调整大小事件
- 最小化在javascript中客户端/服务器之间发送的数据
- 咕噜咕噜 - 最小化指令
- 如何在追加函数创建后最小化单个框
- 如何禁用最大化,最小化和关闭按钮以打开新窗口
- 如何使用jquery裁剪插件最小化请求的图像
- 最小化Javascript和HTML代码
- 客户端HTML最小化
- 如何避免/最小化列表中列表的缩进
- 最小化httpInterceptor AngularJS$注入器错误
- 使用Sencha CMD最小化现有的ExtJS应用程序
- 如何在同一个browserify命令中对文件进行最小化和因子绑定