我想把我的git仓库发布到npm,这样我就可以在其他项目中使用它了,但是当我运行npm publish
命令时,我得到了如下错误:
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://npm.pkg.github.com/vue-toggle-component
npm ERR! 404
npm ERR! 404 'vue-toggle-component@0.1.0' 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! A complete log of this run can be found in:
npm ERR! C:\Users\niels\AppData\Roaming\npm-cache\_logs\2020-10-29T10_47_26_952Z-debug.log
在尝试修复错误时,我尝试了npm adduser
命令和npm login
命令以确保我登录了。这两个命令都没有解决我的问题,因为看起来我已经登录了。
我的package.json
:
{
"name": "vue-toggle-component",
"version": "0.1.0",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.6.5",
"vue": "^2.6.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
},
"description": "## Project setup ``` yarn install ```",
"main": "babel.config.js",
"repository": {
"type": "git",
"url": "git+https://github.com/nehlis/vue-toggle-component.git"
},
"keywords": [
"Vue.js",
"Toggle",
"component",
"Lightweight",
"Checkbox"
],
"author": "Niels Bosman",
"license": "ISC",
"bugs": {
"url": "https://github.com/nehlis/vue-toggle-component/issues"
},
"homepage": "https://github.com/nehlis/vue-toggle-component#readme"
}
有人知道怎么修吗?
7条答案
按热度按时间fcg9iug31#
尝试
npm login
。在npm publish
的情况下,有时会显示误导性消息。qgelzfjb2#
根据错误输出中出现的
https://npm.pkg.github.com/
,您试图发布到GitHub Packages而不是npm注册表(尽管GitHub现在拥有npm,但它们仍然是独立的)。GitHub包只支持作用域npm包。作用域包的名称格式为@owner/name。作用域包总是以@符号开始。您可能需要更新package.json中的名称以使用作用域名称。例如,“name”:“@codertocat/你好-世界-npm”。
所以你需要修改你的配置,指向npm注册表而不是GitHub软件包注册表,或者修改你的
package.json
中的name
字段,使之成为一个有作用域的软件包名。vxqlmq5t3#
我有同样的问题,问题来自于发布的包是不可访问的,所以你需要添加
.npmrc
与您的私人repo是这样的或
rsl1atfo4#
正如另一位用户提到的,你必须将自己添加到你公司或组织的私人注册表中,但是如果你没有.npmrc设置,这个命令会自动创建文件并更新你的注册表:
但是,最可靠的方法是简单地执行以下操作
lp0sw83n5#
关键在于身份验证。
似乎用户名/密码验证不再与
npm publish
一起工作。您需要生成访问令牌x1c 0d1x
然后用它来发布
9ceoxa926#
在.npmrc文件中添加以下代码
在GIT bash中执行命令
e1xvtsh37#
我也遇到过同样的问题,并且使用了几乎所有我认为有效的解决方案。如果你在GitHub上发布它,那么这可能会对你有所帮助。比如
npm config set registry https://registry.your-company-registry.npme.io/
设置注册表还是不行
如果您的GitHub用户名中包含大写字符,并且您使用的是GitHub在package部分下提供的命令
确保在本地运行该命令时更新您的用户名默认情况下,GitHub不会在packages部分下的命令中显示大写字符。
如果你的用户名是
UserName123
,包名是my-first-package
,GitHub会显示的命令是npm install @username123/my-first-package@1.0.0
请注意,安装软件包时用户名区分大小写,因此,请将命令更新为
npm install @Username123/my-first-package@1.0.0
希望它能正常工作