我正在使用uglifyjs-folder
缩小文件夹中的多个文件npm
package.json
例如:
"uglifyjs": "uglifyjs-folder js -eyo build/js"
它按预期工作并缩小文件夹中的所有文件。
我想删除任何控制台.log和警报,同时缩小,但找不到任何选项uglifyjs-folder
https://www.npmjs.com/package/uglifyjs-folder
请帮忙。
简答题
不幸的是,uglifyjs-folder没有提供使日志静音的选项。
溶液
您可以考虑编写一个 nodejs 实用程序脚本,它利用 shelljs 来:
- 通过
shelljs
exec()
方法调用uglifyjs-folder
命令。 - 通过使用
exec()
方法silent
选项阻止登录到控制台。
以下步骤进一步说明了如何实现这一点:
-
安装
首先,
cd
到您的项目目录并通过运行以下命令安装/添加 shelljs:
npm i -D shelljs
节点脚本
创建一个 nodejs 实用程序脚本,如下所示。让我们将文件命名为:
run-uglifyjs-silently.js
。var path = require('path'); var shell = require('shelljs'); var uglifyjsPath = path.normalize('./node_modules/.bin/uglifyjs-folder'); shell.exec(uglifyjsPath + ' js -eyo build/js', { silent: true });
注意:我们直接从本地
./node_modules/.bin/
目录执行uglifyjs-folder
,并将path.normalize()
用于跨平台目的。包.json
在
package.json
中配置uglifyjs
脚本,如下所示:{ ... "scripts": { "uglifyjs": "node run-uglifyjs-silently" ... }, ... }
运行
通过命令行正常运行脚本。例如:
npm run uglifyjs
或者,为了减少对控制台的日志记录,请添加
npm run
--silent 或速记等效的 -s 选项/标志。例如:npm run uglifyjs -s
笔记:
上面的示例要点假设
run-uglifyjs-silently.js
保存在项目目录的顶层(即package.json
所在的位置)。提示:您始终可以将
run-uglifyjs-silently.js
存储在项目目录顶层名为.scripts
的隐藏目录中。在这种情况下,您需要在package.json
中重新定义脚本,如下所示:{ ... "scripts": { "uglifyjs": "node .scripts/run-uglifyjs-silently" ... }, ... }
uglify-folder
(在 2021 年,现在? )支持传入更精简的配置,如下所示:
$ uglify-folder --config-file uglifyjs.config.json ...other options...
并带有uglifyjs.config.json
:
{
"compress": {
"drop_console": true
}
}
以及 API 参考中此处提供的所有选项。