背景
前端开发中,有时候需要在项目中使用环境变量来配置不同环境下的接口地址、图片等等。由于环境变量在不同环境下的值不一样,因此需要一种工具将环境变量转为 JS 对象,方便在代码中使用。
在这里,我们介绍一款 npm 包——envtojson
,它可以将环境变量转为 JSON 对象,使得在前端项目中使用环境变量变得更加便捷。
安装
使用 npm 安装 envtojson
:
npm install envtojson
使用
API
envtojson
包暴露出一个 toJSON
方法,接受两个参数:
prefix
: 环境变量前缀,默认为REACT_APP_
。options
: 一个配置对象,包含ignoreUndefined
和delimiter
两个属性。
以下是一个使用 toJSON
方法的例子:
const envtojson = require('envtojson'); const result = envtojson.toJSON('MY_APP_', { ignoreUndefined: true }); console.log(result);
示例
假设我们有以下环境变量:
MY_APP_API_BASE_URL=https://api.myapp.com
我们可以在代码中将这个环境变量转化为一个 JSON 对象:
const envtojson = require('envtojson'); const result = envtojson.toJSON('MY_APP_'); console.log(result); // { API_BASE_URL: 'https://api.myapp.com' }
转化后的 JSON 对象可以直接在代码中使用。
高级用法
ignoreUndefined
默认情况下,如果环境变量不存在或者值为 undefined
,则会被转换为一个空字符串。如果需要忽略这些值,可以使用 ignoreUndefined
选项。
const envtojson = require('envtojson'); process.env.MY_APP_API_BASE_URL = undefined; const result = envtojson.toJSON('MY_APP_', { ignoreUndefined: true }); console.log(result); // {}
delimiter
默认情况下,envtojson
使用下划线 _
作为分隔符。如果需要自定义分隔符,可以使用 delimiter
选项。
假设环境变量的名称为 MY_APP_COUNTRY_USA
, MY_APP_COUNTRY_CHN
等形式,我们可以使用 delimiter
选项将其转化为嵌套对象:
const envtojson = require('envtojson'); process.env.MY_APP_COUNTRY_USA = 'United States'; process.env.MY_APP_COUNTRY_CHN = 'China'; const result = envtojson.toJSON('MY_APP_', { delimiter: '_' }); console.log(result); // { COUNTRY: { USA: 'United States', CHN: 'China' } }
总结
envtojson
包可以帮助我们将环境变量转换成 JSON 对象,方便在前端项目中使用。我们可以使用 toJSON
方法和一些高级选项来进行转换的配置。这个包的使用对于前端开发是一个很好的工具,可以使得开发人员把更多的精力放在业务代码的编写上。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e26a563576b7b1ecfa2