Javascript 浏览化、缩小化、条件编译 TL;博士
minifyify(Browserify插件)使用了uglify js,但似乎无法处理:Javascript 浏览化、缩小化、条件编译 TL;博士,javascript,browserify,bundling-and-minification,conditional-compilation,uglifyjs,Javascript,Browserify,Bundling And Minification,Conditional Compilation,Uglifyjs,minifyify(Browserify插件)使用了uglify js,但似乎无法处理: 压缩工程 uglifyjs单独用于条件编译 minifyify提供了额外的编译优化,但我无法使用条件编译 我正在使用Browserify和babelify转换器以及minify插件。以下是cmd,分为可读部分: browserify src/scripts/app/index.js -o build/prod/public/assets/js/appBundle.min.js -t [babelify
- 压缩工程
- uglifyjs单独用于条件编译
- minifyify提供了额外的编译优化,但我无法使用条件编译
我正在使用Browserify和babelify转换器以及minify插件。以下是cmd,分为可读部分:
browserify
src/scripts/app/index.js
-o
build/prod/public/assets/js/appBundle.min.js
-t
[babelify——预设[es2015]]
-p
[minifyify--no-map--uglify[--compress[--drop\u console--dead\u code--conditionals--unused--if\u return]--mangle--screw-ie8--define[DEBUG=false]]
我已经让每一个设置/选项都发挥作用了。但是,我无法使条件编译工作。
Minifyify使用uglifyjs的minify
方法。事实上,我经过minifyify不会改变任何事情
通过uglifyjs工程直接建造
uglifyjs input.js--compress--dead_code--define DEBUG=false--o output.js
但是我失去了minifyify提供的额外压缩/优化功能
我也愿意接受另一个构建过程。我的需求将在当前流程的设置中恢复:
- CommonJS必需模块
- ES6到ES5的传输
- 高级缩小/压缩
- cmd行:
——定义VARNAME=VALUE
- 编程的:
压缩:{global_defs:{varname:value}}
- 事实证明,罪犯或多或少是丑陋的。任务中全局定义的属性名称在CMD和编程API之间不同
"use strict";
var browserify = require("browserify"),
fs = require("fs");
browserify("src/scripts/app/index.js")
.transform("babelify", {presets: ["es2015"], plugins: ["transform-object-assign"]})
.plugin("minifyify", {map: false, uglify: {
compress: {
drop_console: true,
dead_code: true,
conditionals: true,
unused: true,
if_return: true,
global_defs: {
DEBUG: false
}
},
mangle: true,
"screw-ie8": true
}})
.bundle()
.pipe(fs.createWriteStream("build/prod/public/assets/js/appBundle.js"));
uglifyjs文档中的更新
我已经提出了对当前uglifyjs文档的修改,提供了一个使用上述编程API的示例,以便在将来为其他人避免这个问题