在NextJs中检测生产或开发环境的最简单方法?

wa7juj8i  于 2023-04-20  发布在  其他
关注(0)|答案(2)|浏览(316)

我想在Nextjs中基本上检测运行环境是开发环境还是生产环境。有没有直接的方法来做到这一点?

if(env == "dev"){
  // do something
}
else if (env == "prod"){
 // do something
}
6tr1vspr

6tr1vspr1#

是的,如果您通过process.env.NODE_ENV访问env,这应该可以开箱即用。
当您通过next dev运行应用程序时,这将是 development,而构建应用程序并运行next start时,将此变量设置为 production
因此,这应该起作用:

const env = process.env.NODE_ENV
if(env == "development"){
  // do something
}
else if (env == "production"){
 // do something
}
m3eecexj

m3eecexj2#

基本上是相同的解决方案,但我不想用丑陋的条件污染我的代码。所以我把它分解成一个简单的模块:

let inDevEnvironment = false;

if (process && process.env.NODE_ENV === 'development') {
  inDevEnvironment = true;
}

export {inDevEnvironment};

现在我可以直接写服务器代码

import {inDevEnvironment} from '../lib/DevEnv';
...
   <div>
     {inDevEnvironment || /* ... production only code ... */}
   </div>
...
   <div>
     {inDevEnvironment && /* ... development only code ... */}
   </div>
...

相关问题