【问题标题】:Can I chain npm configuration entries?我可以链接 npm 配置条目吗?
【发布时间】:2015-04-19 18:46:34
【问题描述】:

npm config 部分的使用很简单,也很酷,但我遇到了一个限制:配置条目不会被扩展,所以不能链接它们,甚至不能访问非配置价值公司配置中的包版本。

示例:

{
  "name": "myproj",
  "version": "0.1.2",

  "//": "Here, '$npm_package_version' is not expanded",
  "config": {
    "target": "dist/myproj-$npm_package_version.js"
  },

  "scripts": {
    "echo": "echo $npm_package_config_target",
  }
}

这给出了:

dist/myproj-$npm_package_version.js

代替:

dist/myproj-0.1.2.js

我能做些什么吗?像这样链接值是一个有用的功能 - 我很惊讶 nom 没有这样做。有理由不这样做吗?

参考资料:

【问题讨论】:

    标签: node.js configuration build npm


    【解决方案1】:

    有几种方法可以解决这个问题。

    最简单的方法可能就是评估字符串

    {
        "name": "myproj",
        "version": "0.1.2",
        "config": {
            "target": "dist/myproj-$npm_package_version.js"
        },
        "scripts": {
            "echo": "eval echo $npm_package_config_target"
        }
    }
    

    如果您对 eval 不满意,那么您可以在脚本中手动连接字符串:

    {
        "name": "myproj",
        "version": "0.1.2",
        "config": {
            "target_prefix": "dist/myproj-",
            "target_suffix": ".js"
        },
        "scripts": {
            "echo": "echo $npm_package_config_target_prefix$npm_package_version$npm_package_config_target_suffix",
        }
    }
    

    或者你可以放弃使用 npms config 而是编写一个可以与其他人组合的快速脚本:

    {
        "name": "myproj",
        "version": "0.1.2",
        "scripts": {
            "config:target": "echo dist/myproj-$npm_package_version.js",
            "echo": "echo $(npm run config:target)"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2021-10-26
      相关资源
      最近更新 更多