如何解决npm"错误:版本无效:" 0.1" BUG?

时间:2015-04-19 21:24:51

标签: node.js bash awk sed npm

我正在尝试构建一个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?以及其他很多人

2 个答案:

答案 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