javascript - 有没有更好的方法来访问 package.json 中的数组数据

标签 javascript json node.js package.json

我的 package.json 中有一小段配置:

{
    "name": "who-rules-app",
    "config": {
        "foo": "bar",
        "words": [
            "tpr",
            "rules"
        ]
    },
    "scripts": {
        "start": "node src/index.js"
    }
}

据我所知,人们通常使用 process.env['npm_package_${keyname}'] 访问 config 键,例如:

process.env['npm_package_config_foo']
//> "bar"

但是当值是一个数组时,你会得到一组扁平的、带编号的键:

process.env['npm_package_config_words_0']
//> "tpr"
process.env['npm_package_config_words_1']
//> "rules"

我总是可以使用 fs 从磁盘读取文件,但我的理解是通过 process.env 做事允许这些东西与环境变量交互,这是跨不同环境处理配置的一种非常棒的方法。

理想情况下,我希望:

process.env['npm_package_config_words']
//> [ "tpr", "rules" ]

有没有更好的方法?一个经过良好测试的模块?很酷的图案?

感谢任何帮助。

最佳答案

不是使用基本上是 process.env hack 的东西,任何最新版本的 Node 都可以开箱即用地加载 .json 文件,所以只需编写如下内容:

let package = require('./package.json');
let config = package.config || {};
let words = config.words || [];

这就是您需要做的所有事情。

关于javascript - 有没有更好的方法来访问 package.json 中的数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122936/

相关文章:

javascript - 如何使用 Chrome 开发工具控制台检查文件中某个函数被调用的次数?

javascript - 通过javascript/D3加载json

node.js - 如何在 Gulp 中将变量从一个管道传送到另一个管道

node.js - 无法安装derbyjs : "No compatible version found"

ajax - Express.js res.render 不重定向,仅显示在控制台中

javascript - 跳出 _.each 循环

javascript - 将 Vue.js 混合到现有的 SSR 网站中?

javascript - OnPress 不适用于 react native map 中的标记

json - AngularJS - 通过变量过滤 Json

javascript - 通过 JavaScript 中的 JSON 通过 Mandrill 发送电子邮件