NodeJS 如何在节点项目中生成时抛出缺少环境变量的错误

w6lpcovy  于 2022-12-18  发布在  Node.js
关注(0)|答案(1)|浏览(197)

我使用.env文件来存储变量,我的typescript节点项目也使用这个文件,我可以在运行时检查是否缺少env变量,如果不存在就抛出一个错误。

export const SOME_KEY = process.env.SOME_KEY || ""
if (!SOME_KEY) {
  throw new Error("SOME_KEY is missing from .env file")
}

但是,有没有办法在构建时检查所有必要的env变量?可能是一些在构建命令中执行的单独节点脚本?注意,我的项目是基于Typescript构建的,所以我猜这会使它变得更复杂。

krcsximq

krcsximq1#

您可以在build之前添加一个步骤,该步骤只是在所需的env变量数组上循环,并在出现问题时退出。
您可能有一个构建脚本,类似于package.json中的内容

{
 "scripts": {
   "build": "...your build command here"
 }
}

您可以添加一个prebuild脚本来检查此情况。

{
 "scripts": {
  "prebuild": "./node_modules/.bin/ts-node-dev check_env_vars.ts"
 } 
}

请注意,我使用ts-node-dev来执行TS。这应该作为一个dev deps安装,而不是一个build dev。
你也可以在你的build命令之前运行它,就像这样:

{
 "scripts": {
  "build": "./node_modules/.bin/ts-node-dev check_env_vars.ts && ... old build command"
 }
}


如果您从check_env_vars.ts执行throw,则build命令将停止,因此这是一个好处。

相关问题