【问题标题】:Is it possible to access npm config settings from a node package's `bin` command?是否可以从节点包的 `bin` 命令访问 npm 配置设置?
【发布时间】:2015-05-23 05:11:21
【问题描述】:

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

包.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 的方式进行操作;我知道还有其他方法可以给这只猫剥皮。)

【问题讨论】:

    标签: node.js shell config


    【解决方案1】:

    您可以使用名为 npm-conf 的软件包,并在 https://github.com/kevva/npm-conf 提供文档。

    首先你需要安装它:

    npm install --save npm-conf
    

    用法如下:

    const npmConf = require('npm-conf');
    
    const conf = npmConf();
    
    conf.get('prefix')
    //=> //=> /Users/unicorn/.npm-packages
    
    conf.get('registry')
    //=> https://registry.npmjs.org/
    

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

    npm config list -l
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多