尝试将新包发布到 NPM 时获取 404

Getting 404 when attempting to publish new package to NPM

我刚刚创建了一个 new package

我现在正尝试像这样第一次将它发布到 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

想法?

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

遇到了同样的错误,我的问题是该包以某种方式设置为仅 "Read" 访问。所以我必须去 NPM 并将包更新为 "Read/Write" access:

1.

2.

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

publish Failed PUT 404 npm ERR! code E404 npm ERR! 404 User not found

但是用账号登录控制台后发布成功

成功发布包后,您可能会遇到 npm install:

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

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

理想情况下,如果您想直接从包裹中提取,您可以将其命名为 index.js,这样您就不会得到 import * from '@xxx/yyy/file'.

之类的东西

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

在我的例子中,我不小心输入了 https://registry.npmjs.org 而不是 https://registry.npmjs.com(.org 与 .com)

就我而言,我在尝试发布的新包的 package.json 中缺少 repository 字段。

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

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

当您将密码更改为 NPM 但未通过 CLI logout/login 时,您也可能会遇到此错误。使用 npm logout 然后 npm login 对我有用。

在我的情况下npm login已经解决了,错误信息具有误导性

就我而言,我必须验证电子邮件地址。即使 npm whoami 告诉我登录正常。

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

  1. 正在我的 npm 帐户中生成一个新的访问令牌。
  2. 修改我的 .zshrc(或 .bashrc)文件中的行:export NPM_TOKEN="<token>"
  3. 正在终端中输入 source ~/.zshrc

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

我在 CI 工作流程中收到此错误,因此没有交互式登录或相关内容。 现有的包工作正常,但添加一个新包却不行,我得到了一个 404。我意识到它应该与新包本身有关,而不是 CI 环境,而且确实如此。

新包在其 package.json 上缺少两个字段,即 repositorypublishConfig 字段。

添加这两个字段,它工作正常(请注意,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/"
}

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

除了重新登录外,对我没有任何帮助:

npm login

希望这对我或以后的其他人有所帮助!

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

npmjs.com 上生成一个新的 automation 令牌并更新我 CD 上的秘密(GitHub 操作)解决了它。

在我的例子中,问题完全不同。

我不得不更换:

npm publish FOLDERNAME

简单地:

cd FOLDERNAME && npm publish

在我的例子中,我还必须使用 --userconfig 参数手动指定 .npmrc 的路径:

cd myapp && npm publish -ddd --userconfig ../.npmrc