next.js 接下来js运行不同的env变量

jhdbpxl9  于 2023-06-29  发布在  其他
关注(0)|答案(1)|浏览(293)

我用的是NextJS。我需要创建三种类型的环境:
1.发展
1.分期
1.生产
我需要在每个env上运行。具体变量。
对于开发,我有.env,对于生产,我有.env.production,对于阶段,我有.env.staging。我的处方看起来像这样:

"scripts": {
  "dev": "next dev -p 3001",
  "build": "next build",
  "start": "next start",
},

用于模拟分段环境。我创建了这个:

"start:staging": "NODE_ENV=staging next dev -p 3001",

但是当我检查console.log(process.env.NODE_ENV, 'env variable');时,我得到development
我做错了什么,如何得到正确的变量?

dzhpxtsq

dzhpxtsq1#

你运行的是next dev,这使得你的应用程序以开发模式运行,这就是为什么你得到development
请访问https://nextjs.org/docs/api-reference/cli#development
如果你想使用next.js构建环境特性,你可以按照他们的文档https://nextjs.org/docs/basic-features/environment-variables#default-environment-variables.Basically,你可以有3个环境文件,本地,开发和生产,他们将在运行应用程序时使用下一个dev和下一个start。本地环境文件总是覆盖其他文件,不要将其提交到项目中,否则将不会使用开发和生产文件。
如果你想做你说的事情(开发,登台和生产),你将不得不自己覆盖下一个env。您可以使用dotenv来实现这一点。
我的一个项目使用了这种配置:https://github.com/RizziSilva/task-time-web。关键文件可以在环境目录next.config.js和server/dotenv.js中找到。重要的是要注意,这个项目是个人性质的,可能不完全符合您的具体要求。

相关问题