npm发布的包名称与现有包过于相似

  • 本文关键字:包过于 相似 包名 npm npm
  • 更新时间 :
  • 英文 :


我想将我的包发布到npm。我得到的错误是:包名称与现有包太相似

403 Forbidden - PUT https://registry.npmjs.org/mypack.... - Package name too similar to existing packages; try renaming your package to '@user../mypackage...' and publishing with 'npm publish --access=public' instead

但是当我尝试安装时:

npm I mypackage...

我得到错误没有找到:

npm ERR! 404 Not Found - GET https://registry.npmjs.org/mypackage... - Not found

有没有一种方法可以检查这个名字是否适合npm,而不仅仅是猜测?因为发布后无法删除程序包。。

要检查类似的名称,可以使用验证名称:

安装:

$ npm install -g validate-name

使用:

$ validate-npm-name my-module
$ validate-npm-name my-package --max-age 1440

它的作用:

此命令检查npm注册表中是否存在类似的名称。

在第一次使用时,它会下载模块名称的完整列表(截至本文撰写之时约为150MB(以检查相似性。后续的下载量要小得多,因为它只下载自上次下载以来的更新。

我按照@RobC在OP评论中建议的脚本创建了这个模块。它是开源的(MIT(。

正如原始脚本中所描述的,这是一种最大的努力,因为npm没有正式记录相似性规则。

此行为已在npm博客上记录在新包Moniker规则下:

我们最近对包命名的工作方式进行了一些更改,以更好地对抗拼写错误,并帮助包作者选择突出的名称。

如果您正在发布一个新的包,也就是说,一个以前没有在注册表中的包,我们会从其名称中删除标点符号,并将其与现有的包名称进行比较如果名称相同且没有标点符号,则不允许创建包

由于react-native的存在,没有人可以发布像这样的变体

  • reactnative
  • react_native
  • react.native

最新更新