【问题标题】:How to use variables in package.json dependencies?如何在 package.json 依赖项中使用变量?
【发布时间】:2023-02-23 19:41:42
【问题描述】:

我有一个情况,我的 package.json 中的不同依赖项应具有相同的版本号。理想情况下,我想定义一次版本号并在依赖项定义中重用此引用。我知道 possibility to define variables 但它们似乎只适用于脚本。

示例package.json

{
  "name": "my-app",
  ...
  "config": {
    "ver": "2.61.0"
  },
  "scripts": {
    "doit": "echo version: ${npm_package_config_ver}",
  },
  "dependencies": {
    "dep/a": "${npm_package_config_ver}",
    "dep/b": "${npm_package_config_ver}",
    ...

  }
}

当我调用 yarn doit 时,它可以工作并打印版本。但是打电话yarn install只是告诉我

Couldn't find any versions for "dep/a" that matches "${npm_package_config_ver}"
? Please choose a version of "dep/a" from this list: (Use arrow keys)
...

我做错了什么还是这种可能性根本不存在?

【问题讨论】:

  • JSON 是 JavaScript 对象表示法。它是一种序列化数据格式,并不意味着可以直接操作或评估。您可以通过解析它来破解它,检查特殊的字符序列,然后在重新序列化之前用值替换它们。但是一旦你这样做了,文件就不再包含变量,所以你又回到了原点。简而言之,没有办法拦截 JSON 的读取器并即时注入值。
  • 非常感谢@Mulan,这是一个完美的解释。如果它是“答案”类型,我会将其标记为答案。 ;)

标签: typescript npm yarnpkg


【解决方案1】:

@Mulan 的评论就是答案。

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多