UglifyJS - 转换文件夹中的所有 .js
UglifyJS - convert all .js in a folder
我想知道是否有人可以提供帮助,我正在尝试完成目前使用 babel 转译 es6 > es5 的构建过程,完成后我想使用 uglifyJS 递归缩小我所有的 .js 文件,使用只是 NPM 脚本(请不要使用 grunt 或 gulp)。
我想要的;
- 将文件夹中的所有 .js 转换为 es5
- 使用 uglify 缩小给定文件夹中的所有 .js 文件
- 创建源地图
- 复制到新文件夹
我目前的设置;
- 将所有 .js 转换为 es5
- 缩小所有 es5 .js 文件(但是没有创建源映射,es5 js 文件也被替换,因为不支持移动到另一个文件夹)
我已经尝试过:https://www.npmjs.com/package/recursive-uglifyjs and https://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"
你可以在这里找到 link 我的全部 package.json : http://pastebin.com/4UHZ1SGM
谢谢
已编辑:包括来自评论的信息
那么,现在 uglifyjs-folder has the option of passing a config file so you can run all uglify's commands, but on a whole folder (and you can transpile to ES5 using harmony - ).
请注意,这比使用 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 版已发布!上面的代码已更新
我想知道是否有人可以提供帮助,我正在尝试完成目前使用 babel 转译 es6 > es5 的构建过程,完成后我想使用 uglifyJS 递归缩小我所有的 .js 文件,使用只是 NPM 脚本(请不要使用 grunt 或 gulp)。
我想要的;
- 将文件夹中的所有 .js 转换为 es5
- 使用 uglify 缩小给定文件夹中的所有 .js 文件
- 创建源地图
- 复制到新文件夹
我目前的设置;
- 将所有 .js 转换为 es5
- 缩小所有 es5 .js 文件(但是没有创建源映射,es5 js 文件也被替换,因为不支持移动到另一个文件夹)
我已经尝试过:https://www.npmjs.com/package/recursive-uglifyjs and https://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"
你可以在这里找到 link 我的全部 package.json : http://pastebin.com/4UHZ1SGM
谢谢
已编辑:包括来自评论的信息
那么,现在 uglifyjs-folder has the option of passing a config file so you can run all uglify's commands, but on a whole folder (and you can transpile to ES5 using harmony -
请注意,这比使用 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 版已发布!上面的代码已更新