@FarmerZ
2017-01-17T05:40:50.000000Z
字数 908
阅读 582
nwe webpack.DefinePlugin(definitions)
DefinePlugin
允许你创建一个全局常量,能够在编译时进行一些设置。当在进行不同的编译状态,如开发和定版(developmeng && release builds),将会非常有用。例如,你想使用一个全局变量来决定是否记录日志;或许在开发是需要记录,在定版(release builds)时不需要。这正是DefinePlugin
做的事。
示例
new webpack.DefinePlugin({
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORT_HTML5:true,
TWO:'1+1',
"typeof window": JSON.stringify("object")
})
console.log("Running App version"+ VERSION);
if(!BROWSER_SUPPORT_HTML5) require("html5shiv");
注意!以为插件不是直接的文本替换,给的值必须是真实的引号包含的字符。而且不能是用相同的引号,例如'"production"',或者使用JSON.stringify('production')。
每个传入DefinePlugin
必须是个标识符,或者带.
的多个标识符。
typeof
,将仅仅是执行typeof.代码的值将被内联,传入时会被压缩,多余的条件将被去掉。
示例
if(!PRODUCTION){
console.log('Debug info')
}
if(PRODUCTION){
console.log('Production log')
}
传入webpack时,将会使用未压缩的结果。
if(!true){
console.log('Debug info')
}
if(true){
console.log('Production log')
}
之后压缩的结果将被传入:
console.log('Production log')