首页 > 解决方案 > 如何使用自定义 .env 文件构建嵌套 js 项目

问题描述

我想使用自定义 NODE_ENV 环境构建一个项目,但无法正常工作,我当前的脚本是

"scripts": {
    "build:dev": "NODE_ENV=development nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "nest start",
    "start:dev": "NODE_ENV=development nest start --watch",
    "start:debug": "NODE_ENV=development nest start --debug --watch",
    "start:prod": "NODE_ENV=production node dist/main",
  }

对于命令 npm run start:dev 效果很好,但是当我尝试

npm run build:dev

的输出console.log(process.env.NODE_ENV)undefined

标签: node.jstypescriptnestjs

解决方案


您必须先安装两个软件包:

npm i config @nestjs/config

.env现在,在您的根文件夹上创建一个文件并在那里定义环境变量。如:

# .env file
NODE_ENV="development"

现在导入ConfigModule文件app.module.ts

import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [
    ConfigModule.forRoot({
      envFilePath: '.env',
    }),
    ...
  ]
})

而且您不需要修改脚本中的任何内容。所以脚本将如下所示:

"scripts": {
    "build:dev": "nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "nest start",
    "start:dev": "nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "node dist/main"
  },

这样,对于生产,您只需更改.env文件上的环境名称即可。


推荐阅读