how to workaround npm "Error: Invalid version: "0.1" BUG?

how to workaround npm "Error: Invalid version: "0.1" BUG?

我正在尝试构建一个 nodejs 包。当我 运行 npm install 我收到 Error: Invalid version: "0.1 消息并且 npm 安装失败。

我试图通过在模块目录的 package.json 文件中将 "version": "0.1", 替换为 "version": "0.0.1", 来手动修复错误,但是有许多模块包含无效的 0.1 版本。很难手动修复它。

有更简单的修复方法吗? 或者可能是 awk、sed 或其他 bash 脚本递归搜索 package.json 文件并将 "version": "0.1", 替换为 "version": "0.0.1", 帮助?

编辑:在提问之前我已经查看了这个线程 npm: Why is a version "0.1" invalid? 和许多其他线程

使用jq:

jq '.version |= if . == "0.1" then "0.0.1" else . end' package.json

由于 jq 的发布版本中还没有就地编辑功能,因此将其与 find 结合使用以处理目录树中的所有 package.json 文件需要一个子 shell 来重定向jq 输出到临时文件。例如:

find . -name package.json -exec bash -c "jq '.version |= if . == \"0.1\" then \"0.0.1\" else . end' {} > {}.new && mv {}.new {}" \;
find "dir" -type f -name package.json -print |
xargs sed -i 's/"version": "0.1"/"version": "0.0.1"/'

应该按照你描述的去做。将 "dir" 替换为您真正的起始目录,当然首先要对其进行测试。