从节点传递或使用process.env变量到reactjs

时间:2016-04-21 06:03:12

标签: javascript node.js reactjs configuration webpack

如何从节点传递或使用process.env变量到reactjs?例如,我有这个

const nodeEnv = process.env.NODE_ENV || 'development'

在我的开发中它起作用(我认为因为它的开发而且我有一个后备'development'

但是当我们将它推送到我们的登台服务器并设置NODE_ENV变量时,它只在第一次加载时才起作用,但随后却没有。我想我确实得到了这个,因为起初它是由节点服务的,它可以访问服务器变量,但之后它将是反应服务页面(对吗?),它将无法访问服务器的东西。那么如何在没有硬编码的情况下获得反应的变量(因为我们最终会有一个不同的生产集)?

EDIT。如果存在差异,我们也会使用webpack。

2 个答案:

答案 0 :(得分:7)

我发现了这个:http://dev.topheman.com/make-your-react-production-minified-version-with-webpack/

module.exports = {
  //...
  plugins:[
    new webpack.DefinePlugin({
      'process.env':{
        'NODE_ENV': JSON.stringify('production')
      }
    }),
    // [...]
  ]
  //...
}

在我看来,这正是您所寻找的。

答案 1 :(得分:7)

Webpack也为此定义了EnvironmentPlugin。只需提供一系列环境变量名称,它们就可以在客户端访问。

plugins: [
  new webpack.EnvironmentPlugin([
    'NODE_ENV',
     'SOME_OTHER_KEY'
  ])
]