是否可以从节点包的`bin`命令访问npm配置设置?

时间:2015-03-19 21:45:59

标签: node.js shell config

我想将一些默认配置添加到用户可以使用npm config覆盖的shell工具中。它looks like this is possible但这只适用于npm script 而不是我的包的二进制文件,由"bin"指定。

的package.json

{
  "name": "tmp",
  "scripts": {
    "test": "node index.js"
  },
    "bin" : {
        "tmp" : "index.js"
    },
    "config": {
        "foo" : 123
    }
}

index.js

#!/usr/bin/env node
console.log(process.env.npm_package_config_foo);

我的尝试

调用二进制文件

此设置正在程序包中运行npm link以创建指向该程序包的全局链接

$ tmp
undefined

将脚本传递给节点

$ node ./index.js
undefined

呼叫为npm script只有这一个

$ npm test

> tmp@ test /private/tmp
> node index.js

123

问题

如何以npm config允许的用户覆盖的方式访问这些配置值? (要清楚我想以npm config的方式做到这一点;我知道还有其他方法来修饰这只猫。)

1 个答案:

答案 0 :(得分:1)

您可以使用名为__init__的程序包和https://github.com/kevva/npm-conf处的文档。

首先你需要安装它:

npm-conf

用法如下:

npm install --save npm-conf

如果您想获得所有可用NPM配置选项的列表:

const npmConf = require('npm-conf');

const conf = npmConf();

conf.get('prefix')
//=> //=> /Users/unicorn/.npm-packages

conf.get('registry')
//=> https://registry.npmjs.org/