亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 913 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號