@FarmerZ
2017-01-17T05:40:50.000000Z
字数 908
阅读 618
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')
