【问题标题】:uglifyjs-folder remove console.log & alert from minified filesuglifyjs-folder 从缩小文件中删除 console.log 和警报
【发布时间】:2018-06-30 23:34:44
【问题描述】:

我正在使用uglifyjs-folder 中的npm package.json 来缩小文件夹中的多个文件,例如:

"uglifyjs": "uglifyjs-folder js -eyo build/js"

它按预期工作并缩小文件夹中的所有文件。

我想在缩小时删除任何 console.logalert,但无法找到 uglifyjs-folderhttps://www.npmjs.com/package/uglifyjs-folder 的任何选项

请帮忙。

【问题讨论】:

  • 据我研究,我发现:uglifyjs-folder 没有任何选项可以删除 console.log 和警报。它只是扫描文件夹并将每个文件发送到 uglify-js 以缩小。但是 uglify-js 可以做到这一点,see here。 uglifyjs-folder 也没有将其选项传递给 uglify-js。所以,我建议你使用grunt 将相同的 uglify-js 选项应用于所有文件夹
  • 我们已经从解决方案中删除了 gulp 并且没有使用 grunt,我们有 npmwebpack 用于编译 reactsassuglify-js 无法编译不同文件夹层次结构中的多个文件,因此使用 uglifyjs-folder

标签: javascript node.js windows npm uglifyjs-folder


【解决方案1】:

简答

很遗憾,uglifyjs-folder 没有提供使日志静音的选项。


解决方案

您可以考虑编写一个使用 shelljs 的 nodejs 实用程序脚本:

  • 通过shelljsexec()方法调用uglifyjs-folder命令。
  • 通过使用exec() 方法silent 选项来防止记录到控制台。

以下步骤进一步解释了如何实现这一点:

  1. 安装

    首先,cd 到您的项目目录并通过运行安装/添加shelljs

    npm i -D shelljs
  1. 节点脚本

    如下创建一个 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() 用于跨平台目的。

  2. package.json

    如下配置package.json内的uglifyjs脚本:

    {
      ...
      "scripts": {
        "uglifyjs": "node run-uglifyjs-silently"
        ...
      },
      ...
    }
    
  3. 跑步

    通过命令行正常运行脚本。例如:

    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"
        ...
      },
      ...
    }
    

【讨论】:

    【解决方案2】:

    uglify-folder(现在是 2021 年?)支持像这样传入更简洁的配置:

    $ uglify-folder --config-file uglifyjs.config.json ...other options...

    uglifyjs.config.json:

    {
      "compress": {
        "drop_console": true
      }
    }
    

    API reference 提供的所有选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      相关资源
      最近更新 更多