[关闭]
@FarmerZ 2017-01-17T05:40:50.000000Z 字数 908 阅读 582

define-plugin

  1. nwe webpack.DefinePlugin(definitions)

DefinePlugin允许你创建一个全局常量,能够在编译时进行一些设置。当在进行不同的编译状态,如开发和定版(developmeng && release builds),将会非常有用。例如,你想使用一个全局变量来决定是否记录日志;或许在开发是需要记录,在定版(release builds)时不需要。这正是DefinePlugin做的事。

示例

  1. new webpack.DefinePlugin({
  2. VERSION: JSON.stringify('5fa3b9'),
  3. BROWSER_SUPPORT_HTML5:true,
  4. TWO:'1+1',
  5. "typeof window": JSON.stringify("object")
  6. })
  1. console.log("Running App version"+ VERSION);
  2. if(!BROWSER_SUPPORT_HTML5) require("html5shiv");

注意!以为插件不是直接的文本替换,给的值必须是真实的引号包含的字符。而且不能是用相同的引号,例如'"production"',或者使用JSON.stringify('production')。

每个传入DefinePlugin必须是个标识符,或者带.的多个标识符。

代码的值将被内联,传入时会被压缩,多余的条件将被去掉。

示例

  1. if(!PRODUCTION){
  2. console.log('Debug info')
  3. }
  4. if(PRODUCTION){
  5. console.log('Production log')
  6. }

传入webpack时,将会使用未压缩的结果。

  1. if(!true){
  2. console.log('Debug info')
  3. }
  4. if(true){
  5. console.log('Production log')
  6. }

之后压缩的结果将被传入:

  1. console.log('Production log')
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注