尝试将新包发布到 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"
当您将密码更改为 NPM 但未通过 CLI logout/login 时,您也可能会遇到此错误。使用 npm logout
然后 npm login
对我有用。
在我的情况下npm login
已经解决了,错误信息具有误导性
就我而言,我必须验证电子邮件地址。即使 npm whoami
告诉我登录正常。
就我而言,我收到此消息是因为我使用的令牌已被撤销。我通过以下方式修复了它:
- 正在我的 npm 帐户中生成一个新的访问令牌。
- 修改我的 .zshrc(或 .bashrc)文件中的行:
export NPM_TOKEN="<token>"
- 正在终端中输入
source ~/.zshrc
。
只需将我的两分钱加到可能的解决方案中
我在 CI 工作流程中收到此错误,因此没有交互式登录或相关内容。
现有的包工作正常,但添加一个新包却不行,我得到了一个 404。我意识到它应该与新包本身有关,而不是 CI 环境,而且确实如此。
新包在其 package.json
上缺少两个字段,即 repository
和 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/"
}
我刚刚使用 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
我刚刚创建了一个 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"
当您将密码更改为 NPM 但未通过 CLI logout/login 时,您也可能会遇到此错误。使用 npm logout
然后 npm login
对我有用。
在我的情况下npm login
已经解决了,错误信息具有误导性
就我而言,我必须验证电子邮件地址。即使 npm whoami
告诉我登录正常。
就我而言,我收到此消息是因为我使用的令牌已被撤销。我通过以下方式修复了它:
- 正在我的 npm 帐户中生成一个新的访问令牌。
- 修改我的 .zshrc(或 .bashrc)文件中的行:
export NPM_TOKEN="<token>"
- 正在终端中输入
source ~/.zshrc
。
只需将我的两分钱加到可能的解决方案中
我在 CI 工作流程中收到此错误,因此没有交互式登录或相关内容。 现有的包工作正常,但添加一个新包却不行,我得到了一个 404。我意识到它应该与新包本身有关,而不是 CI 环境,而且确实如此。
新包在其 package.json
上缺少两个字段,即 repository
和 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/"
}
我刚刚使用 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