为了账号安全,请及时绑定邮箱和手机立即绑定

webpack中的一个疑惑

webpack中的一个疑惑

FFIVE 2018-08-03 17:49:10
我不明白的是'"production"',外边要分别加单引号 双引号。下边说的string variables need to be wrapped into single and double quotes '"..."',什么是字符串变量?// config/prod.env.jsmodule.exports = {   NODE_ENV: '"production"',   DEBUG_MODE: false,   API_KEY: '"..."' // this is shared between all environments}// config/dev.env.jsmodule.exports = merge(prodEnv, {   NODE_ENV: '"development"',   DEBUG_MODE: true // this overrides the DEBUG_MODE value of prod.env})// config/test.env.jsmodule.exports = merge(devEnv, {   NODE_ENV: '"testing"'}) Note: string variables need to be wrapped into single and double quotes '"..."'
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

这个不是 webpack 要求的,是 webpack.definePlugin 要求的。后者会把你代码里的变量替换成指定的内容,用来输出特定环境要求的代码。

想象一下,你的代码会发布两个版本,一个是试用版,一个是正式版。试用版中到达一定条件后会中断执行,你就可以这样做:

if (IS_TRIAL) {
  alert('这是试用版');  return;
}

然后在变量配置中定义

module.exports = {
  IS_TRIAL: true;
}

打包编译后的代码就变成了

if (true) {  //...}

那么,如果变量是个字符串,比如:if (VERSION === 'trial'),但是你不加引号,就变成了 if (trial === 'trial'),这时 JS 会认为前面一个是变量,就会导致一些奇怪的问题。


查看完整回答
反对 回复 2018-08-05
  • 1 回答
  • 0 关注
  • 879 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信