Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应+;网页:';process.env';是未定义的_Javascript_Reactjs_Webpack - Fatal编程技术网

Javascript 反应+;网页:';process.env';是未定义的

Javascript 反应+;网页:';process.env';是未定义的,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我正在尝试用webpack在我们的站点上运行热开发服务器;该站点使用ReactJS,其中包含以下代码: if (\"production\" !== process.env.NODE_ENV) // etc 不运行热插拔时可以,但使用热插拔时,它会运行,从而导致错误: TypeError: process.env is undefined 代码如下所示: 该项目是建模的,然后才开始工作;所以问题是,;我在配置文件中犯了什么错误和/或在“生产”编译工作正常时如何查找错误 我已经发布了。在您的

我正在尝试用webpack在我们的站点上运行热开发服务器;该站点使用ReactJS,其中包含以下代码:

if (\"production\" !== process.env.NODE_ENV) // etc
不运行热插拔时可以,但使用热插拔时,它会运行,从而导致错误:

TypeError: process.env is undefined
代码如下所示:

该项目是建模的,然后才开始工作;所以问题是,;我在配置文件中犯了什么错误和/或在“生产”编译工作正常时如何查找错误


我已经发布了。

在您的网页配置中,有两个选项会影响
进程.env

  • (见附件)
查看您的代码,它看起来像是
process.env
options.prerender
options.minimize
都为
false
时可能未定义


您可以通过始终使用定义
process.env
(例如:
node
)的环境,或通过使用
DefinePlugin
为自己的变量指定默认值来解决此问题

这个答案对我来说更有意义。为其他同样需要完整示例的人发布


这是最简单的方法:

new webpack.EnvironmentPlugin( { ...process.env } )

将其添加到您的webpack插件列表中。

当您使用webpack打包服务器端应用程序(
target:'node'
)时,
DefinePlugin
似乎覆盖了添加到其中的
process.env
i.s.o。我在阅读Heroku env时遇到了麻烦。变量
process.env.PORT
,直到我从我的网页配置中删除了
DefinePlugin
。我在.env文件中定义了我的env变量,不知道为什么这些变量在我的代码中没有定义。原来我还需要在我的网页包配置中包含
newwebpack.DefinePlugin({“process.env”:{NODE_env:JSON.stringify(“production”)}),
!非常感谢。那很有帮助,是的!非常感谢。看了你的例子后,我意识到我在heroku上运行webpack,而我只需要在我的开发机器上运行它。热插拔的
是什么<代码>热开发服务器
?指向Webpack文档,其中指出,
process.env
不应再用于前端。这对我来说很有效。。。除此之外,如果您的环境中有密钥或机密,您可能希望更加明确,因为这会拉取所有内容。在docker中,您需要拉取所有内容,如果您没有“docker”,那么您就不会在2018年:是的,您真的不应该这样做,否则您可能最终会泄漏机密。