【问题标题】:About Environment variable configuration of nestjs关于nestjs的环境变量配置
【发布时间】:2021-05-08 00:20:59
【问题描述】:

在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

【问题讨论】:

    标签: nestjs nestjs-config


    【解决方案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"
    

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

    【讨论】:

    • 我认为您的意思是 "start:prod" 而不是 "start:dev:prod"
    • 不,我的意思是制作一个新脚本start:dev:prod 以映射到NODE_ENV=prod nest start --watch,因为Nest 项目已经有一个start:prod,就像我在答案的后半部分提到的那样。这个新脚本将允许使用 prodNODE_ENV 值进行热重载
    猜你喜欢
    • 2019-09-29
    • 2020-03-12
    • 2020-08-09
    • 2022-01-07
    • 2021-08-01
    • 2021-11-03
    • 2022-08-13
    • 2019-12-22
    • 2014-09-01
    相关资源
    最近更新 更多