
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.2 配置
在开发过程中,有很多内容是需要配置的,一般笔者喜欢使用node-config或yaml.js这两个模块。package.json是每个Node.js应用中都有的文件,因此完全可以在package.json文件里添加配置。
以package.json文件中的config字段为例,如果在CLI中使用环境变量,则config中的配置项将被环境变量对应的值覆盖。
假设package.json文件的内容如下。

在实际代码中,可以直接使用process.env.npm_package_config_port来获得port配置,方法如下。

另外,还可以通过命令行直接修改package.json文件里的内容,如下。

使用命令行方式进行配置有过度设计的嫌疑。其实,可以根据Node.js查找路径规则,找到最近的package.json文件,读取配置。比如pkg-dir模块中就实现了这个功能,示例代码如下。

举个例子,比如我们想要查找以下路径。


如果通过下面的代码进行查找,执行的结果是'/Users/i5ting/foo',即最近的package.json文件的位置。
