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" 替换为您真正的起始目录,当然首先要对其进行测试。
我正在尝试构建一个 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" 替换为您真正的起始目录,当然首先要对其进行测试。