如何知道以react-scripts start启动的应用是在开发模式还是生产模式下启动

时间:2019-04-08 08:03:58

标签: reactjs create-react-app

在两个实例上用const options = { valueNames: ['name', 'id', 'category', 'cost'], }; let productList = new List('low-turnover', options); 启动我的react应用时,存在一些特殊情况。

对于一个实例,我看到error boundary overlay screen,而对于其他实例,无论何时发生任何运行时异常,我都看不到错误边界屏幕,尽管两个实例都具有相同的代码库并以react-script start开头。我要以react-scripts start开头两个实例,因为我希望它们都运行开发模式。

我设置NODE_ENV = development并在app.js中验证react-scripts start开始设置为process.env.NODE_ENV。在运行时异常时,我仍然看不到实例之一的错误覆盖屏幕。该错误明确记录在控制台中。但是对于一个实例,我得到了错误覆盖屏幕,而对于另一实例却没有。

根据下面他的回答development,似乎检查Tyro会表明该应用程序是按生产还是开发模式运行。但是,在我的情况下,虽然将NODE_ENV检查为设置为NODE_ENV,但是行为类似于development模式,因为尽管错误日志没有出现在运行时异常中,但已记录到控制台

问题:

1)检查NODE_ENV会显示变量值,但是我们如何知道该应用程序是否确实在NODE_ENV指示的环境中运行?

2)在我的情况下,即使检查的NODE_ENV的值为“开发中”,该应用程序仍处于生产模式,因为尽管错误已记录到控制台,但错误边界覆盖屏幕没有出现。是否有其他情况即使在production模式下也不会出现错误边界叠加屏幕?

1 个答案:

答案 0 :(得分:-1)

我不确定您是否可以通过这种方式检查CRA应用程序使用的NODE_ENV变量。您无法通过发出echo $NODE_ENV在您的机器(泊坞窗)中进行检查。

  1. 要设置=更新react-scripts start命令(如果您要使用它来运行应用):

"scripts": { "start": "NODE_ENV=development react-scripts start", ...

  1. 要在App.js条目文件中检查=,只需添加console.log('env is:', process.env.NODE_ENV),启动应用程序,在浏览器中打开并显示console,您应该看到的输出您的日志。

    window.MyEnv = process.env.NODE_ENV,打开相同的控制台调试器,并检查window.MyEnv的值。

希望这会有所帮助!