UglifyJS - 转换文件夹中的所有.js

doe*_*ute 8 javascript node.js npm uglifyjs web

我想知道是否有人可以提供帮助,我正在尝试完成我的构建过程,目前使用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"
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Z. *_*lah 1

编辑:包含评论中的信息

因此,现在uglifyjs-folder可以选择传递配置文件,这样您就可以在整个文件夹上运行所有 uglify 的命令(并且您可以使用 Harmony 转换为 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.:目前我自己有一个未解决的问题,因为源映射导致错误。一旦问题解决,我将在这里更新我的答案。

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