我想在Nextjs中基本上检测运行环境是开发环境还是生产环境。有没有直接的方法来做到这一点?
if(env == "dev"){ // do something } else if (env == "prod"){ // do something }
6tr1vspr1#
是的,如果您通过process.env.NODE_ENV访问env,这应该可以开箱即用。当您通过next dev运行应用程序时,这将是 development,而构建应用程序并运行next start时,将此变量设置为 production。因此,这应该起作用:
process.env.NODE_ENV
env
next dev
next start
const env = process.env.NODE_ENV if(env == "development"){ // do something } else if (env == "production"){ // do something }
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> ...
2条答案
按热度按时间6tr1vspr1#
是的,如果您通过
process.env.NODE_ENV
访问env
,这应该可以开箱即用。当您通过
next dev
运行应用程序时,这将是 development,而构建应用程序并运行next start
时,将此变量设置为 production。因此,这应该起作用:
m3eecexj2#
基本上是相同的解决方案,但我不想用丑陋的条件污染我的代码。所以我把它分解成一个简单的模块:
现在我可以直接写服务器代码