enviante 是一个基于环境变量来配置应用程序的 npm 包。它使得程序在不同的环境中运行更加容易,同时也能够提高可扩展性和可维护性。
安装
你可以通过 npm 全局安装 enviante:
npm install -g enviante
在你的项目中,你可以将 enviante 安装为依赖项:
npm install enviante
使用
使用 enviante,你需要遵循以下步骤:
1. 创建一个配置文件
在根目录下创建一个名为 .env
的文件。在该文件中,你可以使用键值对来定义你的环境变量。例如:
PORT=3000 DB_URL=mongodb://localhost/mydatabase
2. 引入 enviante
要使用 enviante,在你的代码中引入它:
const enviante = require('enviante');
3. 使用环境变量
现在,你可以通过以下方式来使用环境变量:
const port = enviante.get('PORT'); const dbUrl = enviante.get('DB_URL');
4. 配置默认值
如果你的环境变量没有设置,你可以使用默认值:
const port = enviante.get('PORT', 3000); const dbUrl = enviante.get('DB_URL', 'mongodb://localhost/mydatabase');
如果环境变量没有设置,并且你没有提供默认值,enviante.get()
将会返回 undefined
。
5. 配置类型转换
你可以配置如何将环境变量转换为不同的类型:
enviante.setType('PORT', 'number'); enviante.setType('ENABLE_FEATURE_X', 'boolean'); const port = enviante.get('PORT'); const enableFeatureX = enviante.get('ENABLE_FEATURE_X');
setType()
方法接受两个参数:键和类型。目前支持的值包括 'string'
、'number'
、'boolean'
、'json'
和 'array'
。如果你尝试访问一个环境变量并且它不能转换为所需的类型,enviante 将会抛出一个异常。
6. 配置验证规则
你可以配置关于环境变量的额外限制:
enviante.setValidator('PORT', { validator: value => value > 0 && value < 65536, message: '端口号必须介于 0 和 65536 之间' });
setValidator()
方法接受两个参数:键和验证规则。规则应该以一个对象的形式提供,包含两个属性:validator
和 message
。validator 属性是一个函数,它接受环境变量的值作为参数,并返回 true
或 false
。如果验证失败,setValidator() 将会抛出一个新的 ValidationFailed 异常,异常的 message 属性将包含你指定的消息。
7. 配置环境
在你的应用程序初始化时,你必须告诉 enviante 当前的环境是什么。你可以这样做:
enviante.setEnvironment('development');
enviante 将会使用 .env.development
文件中包含的环境变量。如果该文件不存在,enviante 将会使用 .env
文件中的变量。
你可以通过 getEnvironment()
方法来获取当前环境的名称。
示例代码
下面是一个使用 enviante 的示例:
-- -------------------- ---- ------- ----- -------- - -------------------- -- ---- ------------------------ ---------- ------------------------------------ ----------- -- ------ ----------------------------- - ---------- ----- -- ----- - - -- ----- - ------ -------- -------- - - ----- --- --- -- ---- --------------------------------------- -- ------ ----- ---- - -------------------- ------ ----- ----- - ---------------------- ---------------------------------- ----- -------------- - -------------------------------- ------- -- ------ ---------------------------- ------------------------------ --------------- - -------------------------
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e25a563576b7b1ecefd