0

在 app.module.ts 的文件中,我使用了环境变量

  imports: [
    ConfigModule.forRoot({ envFilePath: [`./src/config/${process.env.NODE_ENV}.env`], isGlobal: true },),
    MongooseModule.forRoot(process.env.DATABASE_URL, {
      useNewUrlParser: true,
      user: `${process.env.DATABASE_USER}`,
      pass: `${process.env.DATABASE_PASSWD}`,
    }),

当我在本地测试时它可以工作,但是当我构建它时,环境不起作用,所以我该怎么办,想想

我的 package.json 脚本

"build": "NODE_ENV=prod nest build", // the env not work
"start:dev": "NODE_ENV=dev nest start --watch",  // it works
4

1 回答 1

1

build因此nest build不运行代码,它运行编译器将ts文件转换为js文件,因此永远不会检查或评估什么process.env.WHATEVER,它只是从ts语法(所有类型)到js可以由node.

start:dev(映射到nest start --watch)是实际运行代码的内容,node用作 JavaScript 引擎。

你可能想要类似的东西

"start:dev:prod": "NODE_ENV=prod nest start --watch"

或者您可以将start:prodNest 在新项目中提供的命令修改为NODE_ENV=prod node dist/main.js

于 2021-02-03T18:27:35.713 回答