【问题标题】:UglifyJS - convert all .js in a folderUglifyJS - 转换文件夹中的所有 .js
【发布时间】:2016-11-13 13:51:52
【问题描述】:

我想知道是否有人可以提供帮助,我正在尝试完成我目前使用 babel 转译 es6 > es5 的构建过程,完成后我想使用 uglifyJS 仅使用 NPM 递归地缩小我的所有 .js 文件脚本(请不要咕哝或吞咽)。

我想要的;

  • 将文件夹中的所有 .js 转换为 es5
  • 使用 uglify 缩小给定文件夹中的所有 .js 文件
  • 创建源地图
  • 复制到新文件夹

我目前的设置;

  • 将所有 .js 转换为 es5
  • 缩小所有 es5 .js 文件(但是没有创建源映射,也替换了 es5 js 文件,因为不支持移动到另一个文件夹)

我已经尝试过:https://www.npmjs.com/package/recursive-uglifyjshttps://www.npmjs.com/package/uglifyjs-folder 但它们似乎都无法执行我需要的构建步骤

这是我的 package.json 脚本部分

   "babel": "babel js_uncompiled --out-dir js_uncompiled/es5 --source-maps  && npm run npm:uglify",
    "build": "npm run babel",
    "uglify": "recursive-uglifyjs js_uncompiled/es5"

你可以在这里找到我完整的 package.json 的链接:http://pastebin.com/4UHZ1SGM

谢谢

【问题讨论】:

    标签: javascript node.js web npm uglifyjs


    【解决方案1】:

    已编辑:包含来自 cmets 的信息

    所以,现在uglifyjs-folder 可以选择传递一个配置文件,这样您就可以运行所有 uglify 的命令,但可以在整个文件夹上运行(并且您可以使用 Harmony - as stated in comments 转译为 ES5)。

    请注意,这比使用 cat 或其他 shell 命令手动执行要好,因为 uglifyjs-folder 可以生成单个输出文件(连接)并且使用起来更简单。

    运行uglifyjs-folder "%CD%" --config-file "uglify.config.json" --output "folder" -e,其中配置文件(在项目的根文件夹中)包含例如(并非所有需要的选项):

    { "compress": true, "mangle": true, "sourceMap": { "base": "input/path/", "content": "input/sourcemap", "filename": "{file}.min.js", "includeSources": true, "root": "original/source/path", "url": "source/path" } }

    Obs.:目前我自己有一个open issue,因为源映射导致错误。问题解决后,我将在此处更新我的答案。

    更新:好的,问题已解决,1.5 版发布!上面的代码更新了

    【讨论】:

    • 现在uglifyjs-folder 可以使用 Harmony 转译为 ES5。
    • 感谢@PranavSingh,更新我的答案
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多