介绍
with-node-env
是一个 npm 包,可以让我们在编写 Node.js 应用时更加方便地使用不同的环境变量。
在 Node.js 中,我们可以使用 process.env
来访问环境变量。通常情况下,我们会定义多个环境变量来区分不同的环境,比如 NODE_ENV
来表示当前是开发环境还是生产环境。
当我们开发、测试或者部署时,需要在不同的环境中切换环境变量,这时候就可以使用 with-node-env
。
安装
使用 npm 安装:
npm install --save with-node-env
使用
我们可以在 package.json
中定义多个脚本,每个脚本都可以使用不同的环境变量。例如:
{ "scripts": { "start": "with-node-env development node app.js", "test": "with-node-env test jest" } }
这里定义了两个脚本,start
用于在开发环境下启动应用程序,test
用于在测试环境下运行 Jest 测试。
with-node-env
命令会自动读取环境变量文件,然后将这些变量添加到当前环境中。默认情况下,with-node-env
会尝试读取 .env
或者 .env.[NODE_ENV]
文件,如果存在的话。其中 [NODE_ENV]
表示当前的环境变量,比如在开发环境下,[NODE_ENV]
就是 development
。
当然,你也可以手动指定环境变量文件的路径。
{ "scripts": { "start": "with-node-env --env .env.production node app.js", "test": "with-node-env --env .env.test jest" } }
这里的 --env
参数指定了环境变量文件的路径。
除了指定单个文件,你还可以在文件路径中使用通配符来匹配多个文件。比如,你可以这样写:
{ "scripts": { "start": "with-node-env --env .env.* node app.js", "test": "with-node-env --env .env.test* jest" } }
这里的通配符 *
表示匹配任意的文件名。
示例
假设我们有一个简单的应用程序,它需要使用一个名为 API_KEY
的环境变量。下面是一个示例的 .env
文件:
API_KEY=secret
现在,我们可以在 package.json
中定义脚本:
{ "scripts": { "start": "with-node-env development node app.js" } }
在启动应用程序之前,我们需要在命令行中设置 NODE_ENV
变量,例如:
NODE_ENV=development npm start
这时候,with-node-env
就会在 process.env
中添加 API_KEY
变量,我们可以通过以下方式来访问它:
const apiKey = process.env.API_KEY; console.log(apiKey); // 'secret'
结论
with-node-env
是一个非常有用的 npm 包,可以让我们更加方便地使用不同的环境变量,从而在不同的环境中开发、测试和部署应用程序。通过本文的介绍,你已经了解了 with-node-env
的基本用法,并且知道了如何在 package.json
中定义多个脚本来使用不同的环境变量。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056c0e81e8991b448e5b82