关于nestjs的环境变量配置
在app.module.ts文件中,我使用了环境变量关于nestjs的环境变量配置,nestjs,nestjs-config,Nestjs,Nestjs Config,在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: `${proce
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}`,
}),
当我在本地测试时,它是工作的,但是当我构建它时,env是不工作的,所以我能做什么呢
mypackage.json脚本
"build": "NODE_ENV=prod nest build", // the env not work
"start:dev": "NODE_ENV=dev nest start --watch", // it works
build
因此,nest build
不运行代码,它运行编译器将ts
文件转换为js
文件,因此从不检查或评估process.env。无论是什么,它只是从ts
语法(所有类型)转换而来的tojs
可由node
解释的语法
start:dev
(映射到neststart--watch
)是实际运行代码的部分,使用节点
作为JavaScript引擎
你可能想要像这样的东西
"start:dev:prod": "NODE_ENV=prod nest start --watch"
或者您可以将嵌套在新项目中提供的start:prod
命令修改为NODE\u ENV=prod NODE dist/main.js
我想您的意思是“start:prod”
而不是“start:dev:prod”
。否,我的意思是制作一个新脚本start:dev:prod
以映射到NODE_ENV=prod nest start--watch
,因为nest项目已经有了一个start:prod
,就像我在回答的后半部分提到的那样。这个新脚本将允许使用NODE\u ENV