roadhog+dva中環境變量的配置

有時候咱們在代碼裏須要根據環境變量來決定一些邏輯。常見的好比,在測試環境訪問的後端url跟正式環境是不同的。webpack

不依賴框架的話,應當是基於webpack的define-plugin實現。如文檔中所示的:git

new webpack.DefinePlugin({
  PRODUCTION: JSON.stringify(true),
  VERSION: JSON.stringify('5fa3b9'),
  BROWSER_SUPPORTS_HTML5: true,
  TWO: '1+1',
  'typeof window': JSON.stringify('object')
});

回到dva。
dva核心是個基於redux封裝的數據流方案,也能夠當成一個輕量級框架。從框架的角度來說,它其實很輕很輕,幾乎沒怎麼管數據流以外的事情,只是簡單地集成了少量幾個庫造成一個框架。github

roadhog是個服務於框架的命令行工具,主要就是提供dev、build 和 test 等命令,屏蔽了webpack的複雜配置,提供了本身的相對簡單的配置能力。web

顯然,這裏的變量配置應當由roadhog來處理。不要像我當初同樣以爲dva是個框架就應該有相關功能_(:зゝ∠)_redux

善用搜索引擎,從roadhog文檔 - define相關討論容易找到方案。roadhog提供了define選項作DefinePlugin的事情。
具體使用:編輯.webpacrc.js後端

export default {
    define: {
        'process.env': {},
        'process.env.NODE_ENV': process.env.NODE_ENV,
        'process.env.API_ENV': process.env.API_ENV,
    },
}
相關文章
相關標籤/搜索