为了在单个命令中缩小和捆绑文件,您可以使用
&&
运算符从终端执行多个命令(即
browserify
、
uglifyjs
)的单行。
详细信息
要逐个缩小每个文件,我们可以链接多个
uglifyjs
命令到每个文件,但更简洁的方法是使用
uglifyjs-folder
模块,它允许将多个文件单独缩小成单个文件/文件夹(在您的情况下,一个文件夹)。这个模块的警告是我们无法重命名单个文件(例如将
index.js
重命名为
index.min.js
),因此,如果重命名文件是一个严格的要求,您可以继续使用uglifyjs并像上面提到的那样链接命令。
假设使用
uglifyjs-folder
,我已将被压缩文件的目标设置为一个生产就绪的文件夹
./static/js/min/
,通过包含
-eo
,其中
e
独立地对每个文件进行压缩,
o
指定了被压缩文件的目标文件夹(有关更多信息,请参见
documentation)。
代码
方法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
方法二: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"
}
希望这对你有所帮助!