我正在尝试构建一个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?以及其他很多人
答案 0 :(得分:2)
find "dir" -type f -name package.json -print |
xargs sed -i 's/"version": "0.1"/"version": "0.0.1"/'
应该按照你的描述进行。将“dir”替换为您真正的起始目录,并首先测试它。
答案 1 :(得分:1)
使用jq
:
jq '.version |= if . == "0.1" then "0.0.1" else . end' package.json
由于jq
的已发布版本中尚未提供就地编辑,因此将此与find
组合以处理目录树中的所有package.json
文件需要使用子shell重定向{ {1}}输出到临时文件。例如:
jq