npmpublish 的包名称与现有包太相似

Jon*_*Sud 4 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
Run Code Online (Sandbox Code Playgroud)

但是当我尝试安装时:

npm I mypackage...
Run Code Online (Sandbox Code Playgroud)

我收到未找到错误:

npm ERR! 404 Not Found - GET https://registry.npmjs.org/mypackage... - Not found
Run Code Online (Sandbox Code Playgroud)

有没有办法检查该名称是否适合 npm 而不仅仅是猜测?因为发布后我无法删除包..

ozm*_*ozm 6

要检查相似的名称,您可以使用validate-name

安装:

$ npm install -g validate-name
Run Code Online (Sandbox Code Playgroud)

使用:

$ validate-npm-name my-module
Run Code Online (Sandbox Code Playgroud)
$ validate-npm-name my-package --max-age 1440
Run Code Online (Sandbox Code Playgroud)

它能做什么:

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

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

我按照OP评论中@RobC建议的脚本创建了这个模块。它是开源的(麻省理工学院)。

正如原始脚本中所述,这是尽力而为,因为 npm 没有正式记录相似性规则。