我得到404错误,而运行“npm发布”

ldxq2e6h  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(216)

我正在尝试发布一个软件包到npm注册表。但是当我点击命令npm publish时,我得到了这个错误。

npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated.
npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only.
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.

> imojha@1.0.0 prepublish .
> npm run build

> imojha@1.0.0 build /home/suraj/Projects/bitandbang
> node build.js

npm notice 
npm notice 📦  imojha@1.0.0
npm notice === Tarball Contents === 
npm notice 1.1kB LICENSE     
npm notice 3.6kB bin/output  
npm notice 233B  bin/card.js 
npm notice 996B  package.json
npm notice 293B  README.md   
npm notice === Tarball Details === 
npm notice name:          imojha                                  
npm notice version:       1.0.0                                   
npm notice package size:  2.3 kB                                  
npm notice unpacked size: 6.2 kB                                  
npm notice shasum:        bb283ae5fe8aed311771f369866c13e24f1eb937
npm notice integrity:     sha512-Nzc+Ysmf4RgSi[...]XoT+OGYHNHoSQ==
npm notice total files:   5                                       
npm notice 
npm ERR! code E404
npm ERR! 404 Not Found - PUT https://npm.registry.github.com/imojha
npm ERR! 404 
npm ERR! 404  'imojha@1.0.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!     /home/suraj/.npm/_logs/2020-10-24T14_54_01_996Z-debug.log

我已经成功地运行了npm login。然后我正在执行npm publish
我已经从GitHub克隆了这个repo并发布到了npm上。它实际上是关于创建你自己名字的npx卡,就像npx用户名一样。我也在做同样的事情。
我试过给它一个不同的package-name,但是没有成功。所以,有人能告诉我我做错了什么吗?下面是package.json文件。

{
  "name": "suraj-ojha",
  "version": "1.0.0",
  "description": "A personal card for Suraj Ojha (@suraj)",
  "main": "/bin/card.js",
  "bin": {
    "bitandbang": "./bin/card.js"
  },
  "repository": {
    "type": "git",
    "url": "git@github.com:Suraez/npxcard.git"
  },
  "homepage": "https://bnb.im",
  "scripts": {
    "prepublish": "npm run build",
    "build": "node build.js",
    "dev": "npm run build && node ./bin/card.js",
    "lint": "standard",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "card",
    "npm",
    "npm card",
    "npx",
    "npx card",
    "business card"
  ],
  "author": "suraj Ojha",
  "license": "MIT",
  "files": [
    "bin/card.js",
    "bin/output"
  ],
  "devDependencies": {
    "boxen": "^2.1.0",
    "chalk": "^2.4.1",
    "standard": "^12.0.1"
  },
  "bugs": {
    "url": "https://github.com/bnb/bitandbang/issues"
  },
  "dependencies": {},
  "publishConfig": {
    "registry": "https://npm.registry.github.com/"
  }
}
jbose2ul

jbose2ul1#

更新:我认为这是由您的主文件夹中的.npmrc问题引起的。与$HOME变量的混乱似乎也使它失败。删除该文件,并登录回npm似乎解决了这个问题。
除了答案之外,你的问题措辞很好,包含了所有必要的信息,我不认为你值得你的反对票。
我已经发布了很多npm包,但是这是我第一次遇到这个问题。这很奇怪,因为这个包和我以前发布的包几乎没有什么区别。我不得不用我的一个工作包和(许多无用的发布后)慢慢转换成我的尝试,是造成错误,只是到了项目之间没有什么不同的地步。除了shell的HOME Env变量之外没有什么不同。
这绝对是npm的一个bug。看起来上面的错误是默认错误,所以我的修改可能不会为你解决这个问题。

wooyq4lh

wooyq4lh2#

publishConfig URL可能错误。您可以尝试在package.json中添加publishConfig选项吗:

"publishConfig": {
    "registry":"https://npm.pkg.github.com"
},
qacovj5a

qacovj5a3#

它适用于其他注册表(也许他们更新了它?):

"publishConfig": {
    "registry": "https://registry.npmjs.org/"
  }
8mmmxcuj

8mmmxcuj4#

GitHub NPM注册表用于私有包。包名必须有作用域。"name": "suraj-ojha"不适用于GitHub。它需要像@suraj/ojha@bnb/bitandbang这样的东西(因为这是你的GitHub用户名和存储库名称)。
如果您不打算发布私有包,而想将其发布到公共位置,请删除package.json中的publishConfig部分,以便npm publish使用默认的公共注册表。

相关问题