关于nestjs的环境变量配置
About Environment variable configuration of nestjs
在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
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
在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
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