允許你創建一個在編譯時可以配置的全局常量,這可能會對開發模式和發布模式允許不同的行為非常有用。比如,你可能會用一個全局的常量來決定log在開發默認觸發而不是在發布模式。
示例:
new webpack.DefinePlugin({
PRODUCTION:JSON.stringfy(true),
VERSION:JSON.stringfy("5fa3b9"),
BROWSER_SUPPORTS_HTML5:true,
TWO:'1+1',
"tgypeof window":JSON.stringfy('object')
});
這個插件直接做的是文本替換,給定的值必須包含字符串本身內的實際引號。通常,有兩種方式來達到這個效果,使用'"production"',或者使用JSON.stringfy('production')。
每個傳進DefinePlugin的鍵值都是一個標識符或者是多個.連接起來的標識符。
如果這個值是一個字符串。它會當做一個代碼片段來執行
如果這個值不是字符串,它會被轉換成字符串。
如果這個值是一個對象,它所有的key會被同樣的方式定義
如果站在一個key前面加了typeof,它會被定義為typeof調用
比如:
在webpack.dev.config.js中的配置:(在開發環境使用的配置文件) webpack.prod.config.js 在生產環境會使用的配置文件
new webpack.DefinePlugin({
"SERVERCE_URL:JSON.stringfy("172.34.4:8080")
});
