85

我刚刚创建了一个新包

我现在第一次尝试像这样将它发布到 NPM:

    ole@MKI:~/Sandbox/pli$ npm publish  --access public
    npm ERR! publish Failed PUT 404
    npm ERR! Linux 3.13.0-93-generic
    npm ERR! argv "/home/ole/.nvm/versions/v6.4.0/bin/node" "/home/ole/.nvm/versions/v6.4.0/bin/npm" "publish" "--access" "public"
    npm ERR! node v6.4.0
    npm ERR! npm  v3.10.3
    npm ERR! code E404

    npm ERR! 404 Not found : @supericium/pli
    npm ERR! 404 
    npm ERR! 404  '@supericium/pli' is not in the npm registry.
    npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
    npm ERR! 404 
    npm ERR! 404 Note that you can also install from a
    npm ERR! 404 tarball, folder, http url, or git url.

    npm ERR! Please include the following file with any support request:
    npm ERR!     /home/ole/Sandbox/pli/npm-debug.log

我尝试更新 NodeJS 和 NPM 以确保我拥有最新版本,它们是:

ole@MKI:~/Sandbox/pli$ node --version
v6.4.0
ole@MKI:~/Sandbox/pli$ npm --version
3.10.3

想法?

4

16 回答 16

98

您需要npm adduser在注册表中注册“supericium” ( ) 作为用户名并登录 ( npm login) 才能在该范围内发布。

于 2016-08-24T10:28:30.333 回答
55

就我而言,它已解决npm login,错误消息具有误导性

于 2020-09-25T07:24:28.000 回答
21

遇到了同样的错误,我的问题是包以某种方式设置为仅“读取”访问。所以我必须去 NPM 并将包更新为“读/写”访问权限:

1.

在此处输入图像描述

2.

在此处输入图像描述

于 2018-12-04T02:03:50.363 回答
9

当您将密码更改为 NPM 但未通过 CLI 注销/登录时,您也可能会收到此错误。使用npm logout然后npm login为我工作。

于 2020-08-10T20:30:34.433 回答
5

就我而言,我必须验证电子邮件地址。即使在npm whoami告诉我我登录良好时也是如此。

于 2020-11-22T17:06:40.907 回答
4

没有什么对我有用,除了再次登录:

npm login

希望这对我或将来的其他人有所帮助!

于 2021-11-13T21:44:01.550 回答
3

我刚刚使用npm adduser命令登录到 npm,它工作正常。

于 2021-08-04T07:26:25.137 回答
2

就我而言,我错过了我试图发布的新包中的repository字段。package.json

"repository": "git://github.com/your-org/your-repo-name.git"

https://docs.npmjs.com/files/package.json#repository

于 2020-08-01T10:21:31.400 回答
2

就我而言,我收到此消息是因为我使用的令牌已被撤销。我通过以下方式修复了它:

  1. 在我的 npm 帐户中生成新的访问令牌。
  2. 修改行:export NPM_TOKEN="<token>"在我的 .zshrc(或 .bashrc)文件中
  3. 进入source ~/.zshrc终端。
于 2021-01-29T14:14:57.027 回答
1

就我而言,我注意到我在 npm 网站中的npm 帐户用户名与我的npm 普通用户名不同。当我尝试通过使用普通用户名登录在控制台中发布时给了我这个错误。

发布失败的 PUT 404 npm ERR!代码 E404 npm 错误!404 未找到用户

但是使用帐户名登录控制台后,它已成功发布

于 2018-12-20T07:05:19.380 回答
1

成功发布包后,您在尝试以下操作时可能会遇到npm install

npm ERR! code E404
npm ERR! 404 Not Found: @xxx/yyy@latest

或类似的东西,无论你npm publish是否成功。在这种情况下,请确保您的{main: 'file.js'}in packages.json 在那里。

理想情况下,index.js如果您想直接从包装中获取信息,则可以调用它,这样您就不会得到import * from '@xxx/yyy/file'.

于 2019-03-13T09:57:34.220 回答
0

我遇到了同样的问题,但我通过卸载 LTS 版本,然后安装 Current 版本和 yarn 成功解决了这个问题。

于 2020-05-01T15:17:28.227 回答
0

就我而言,我不小心输入https://registry.npmjs.orghttps://registry.npmjs.com(.org vs .com)

于 2020-06-26T23:40:56.373 回答
0

只需将我的两分钱添加到可能的解决方案中

我在 CI 工作流程中遇到了这个错误,所以没有交互式登录或相关的东西。现有的包工作正常,但添加一个新的包不能正常工作,我得到了一个 404。我意识到它应该与新包本身有关,而不是 CI 环境,确实如此。

新包的package.jsonrepository和字段缺少两个publishConfig字段。

添加这两个字段,它可以正常工作(注意,repository字段以其扩展形式使用,带有directory属性)

"repository": {
  "type": "git",
  "url": "ssh://git@github.com/__user__/__repo-name__.git",
  "directory": "packages/__new-package-name__"
},
"publishConfig": {
  "registry": "https://npm.pkg.github.com/"
}
于 2021-06-16T17:09:18.340 回答
0

就我而言,我相信我启用了 2FA,npmjs.com因此 CD 中使用的发布令牌不起作用(应该抛出 401,但得到了 404)。

在我的 CD 上生成一个新automation令牌npmjs.com并更新密钥(GitHub 操作)解决了这个问题。

于 2021-11-18T22:01:38.660 回答
0

就我而言,问题完全不同。

我不得不更换:

npm publish FOLDERNAME

简单地说:

cd FOLDERNAME && npm publish

就我而言,我还必须手动指定.npmrc使用--userconfig参数的路径:

cd myapp && npm publish -ddd --userconfig ../.npmrc
于 2022-02-02T12:50:26.747 回答