Babel minify
如果您还没有使用babel(作为预设)或想要独立运行它,请使用babel minify。
安装
npm install --save-dev babel-preset-minify
使用
.babelrc
{ "presets": ["minify"] }
或者选项 -
{ "presets": [["minify", { "mangle": { "exclude": ["MyCustomError"] }, "unsafe": { "typeConstructors": false }, "keepFnName": true }]] }
babel script.js --presets minify
require("babel-core").transform("code", { presets: ["minify"] });
选项
包含以下两种选择:
1-1 映射
相同选项传递给多个
false - 禁用
true - 启用
{ ...pluginOpts } - 启用并将 pluginOpts 传递给。
选项名
认值
booleans
transform-minify-booleans
true
builtIns
minify-builtins
true
consecutiveAdds
transform-inline-consecutive-adds
true
deadcode
minify-dead-code-elimination
true
evaluate
minify-constant-folding
true
flipComparisons
minify-flip-comparisons
true
guards
minify-guarded-expressions
true
infinity
minify-infinity
true
mangle
minify-mangle-names
true
memberExpressions
transform-member-expression-literals
true
mergeVars
transform-merge-sibling-variables
true
numericLiterals
minify-numeric-literals
true
propertyLiterals
transform-property-literals
true
regexpConstructors
transform-regexp-constructors
true
removeConsole
transform-remove-console
false
removeDebugger
transform-remove-debugger
false
removeUndefined
transform-remove-undefined
true
replace
minify-replace
true
simplify
minify-simplify
true
simplifyComparisons
transform-simplify-comparison-operators
true
typeConstructors
minify-type-constructors
true
undefinedToVoid
transform-undefined-to-void
true
当多个需要相同选项时,可以简单的声明在相同位置。这些选项会被传递到两个或更多的中。
选项名
keepFnName
通过 mangle & deadcode
keepClassName
通过 mangle & deadcode
tdz
通过 builtIns, evaluate, deadcode, removeUndefined
例如
{ "presets": [["minify", { "evaluate": false, "mangle": true }]] }
{ "presets": [["minify", { "mangle": { "exclude": ["ParserError", "NetworkError"] } }]] }
{ "presets": [["minify", { "keepFnName": true }]]}// 等同于{ "presets": [["minify", { "mangle": { "keepFnName": true }, "deadcode": { "keepFnName": true } }]] }