Skip to content

Files

Latest commit

 

History

History
19 lines (10 loc) · 1.25 KB

DETAILS.zh-CN.md

File metadata and controls

19 lines (10 loc) · 1.25 KB

目的性

对于多种部署环境,往往我们需要编写不同的配置代码,一个经典的解决方案是分别编写与环境相对应的多个配置文件。然后使用别名或者动态加载来获取我们所需要的变量。

编写多个配置文件的过程很简单,但其中有一些注意事项:

  • 必须将不同的值分别分配给多个文件中的同一个变量。如果你想同时知道一个变量的所有细节,将会变得很难阅读,如果有更多的环境则更难。

  • 由于将配置文件分成了多个文件,我们往往会忘记给其他一些环境的配置文件编写代码。

上述这些对我们来说可能是一场噩梦,但为什么我们不在一个配置文件中声明它们呢?这是因为我们不想将不相关的配置捆绑到一起。

penv.macro 旨在解决上述问题。

运行原理

penv.macro 将读取你传递给 env() 函数的参数,然后选择相对应的属性,其键值与process.env.NODE_ENV 的值相匹配,并且使用它的值属性来替换整个 env(...) 表达式。

由于这个原因,它现在只支持普通对象,且键值必须是一个字符串,而不是计算表达式。但属性值则可以支持 JavaScript 语法中的任何内容。