webpack.definePlugin
允许你创建一个在编译时可以配置的全局常量,这可能会对开发模式和发布模式允许不同的行为非常有用。比如,你可能会用一个全局的常量来决定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")
});