【发布时间】: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