如何从节点传递或使用process.env
变量到reactjs?例如,我有这个
const nodeEnv = process.env.NODE_ENV || 'development'
在我的开发中它起作用(我认为因为它的开发而且我有一个后备'development'
。
但是当我们将它推送到我们的登台服务器并设置NODE_ENV
变量时,它只在第一次加载时才起作用,但随后却没有。我想我确实得到了这个,因为起初它是由节点服务的,它可以访问服务器变量,但之后它将是反应服务页面(对吗?),它将无法访问服务器的东西。那么如何在没有硬编码的情况下获得反应的变量(因为我们最终会有一个不同的生产集)?
EDIT。如果存在差异,我们也会使用webpack。
答案 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'
])
]