持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天, 点击查看活动详情
1.npm publish 报错 E426
npm ERR! code E426
npm ERR! 426 Upgrade Required - PUT http://registry.npmjs.org/vue-transfer-three
npm ERR! A complete log of this run can be found in:
主要是因为npm源设置的是http开头,如下图
所以需要重新设置
npm源(要https开头!!!),换了之后就能成功发布
解决方法:
npm config set registry https://registry.npmjs.org/
2.npm publish 报错 E402
我遇到这个问题是因为package.js中的name命名成这个格式 @name/包名,这样子即使package.js中的private设置成false也会默认为私有包,但是私有包要给钱,所以只要后缀加上--access public即可
Error: 402 Payment Required - PUT registry.npmjs.org/@xx/xx - You must sign up for private packages
解决方法:
npm publish --access public
3.发布成功后,install报错-4058,而且在淘宝镜像 和 npm管理包网站都能找到该插件
执行npm install XXX (这个是在npm发布之后所在包的页面的右边自动生成的语句)
npm WARN tarball tarball data for 包名@file:包名-0.0.1.tgz (null) seems to be corrupted. Trying again.
npm WARN tarball tarball data for 包名@file:包名-0.0.1.tgz (null) seems to be corrupted. Trying again.
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path F:\project\new\my-test\node_modules\包名\包名-0.0.1.tgz
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, open 'F:\project\new\my-test\node_modules\包名\包名-0.0.1.tgz'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
网上找到的都是执行以下代码【但对我无效】:
// 清除缓存
npm cache clean --force
// 删除package-lock.json文件,之后再install
无语无语无语 记录一下我这弱智的错误,我试过好几次install 我新发布到npm上的包,都提示找不到的XX.tgz,之后发现是因为我npm pack之后,因为想要测试这个组件是否能用,所以我执行完pack之后install了我的组件,然后我package设置file(npm发布包含的文件)没有我那个install的包,但是我的package.json中是有依赖我npm pack之后的包依赖,之后我直接publish上去npm,导致install一直报错一直报错,最终就是检查package.json有没有奇奇怪怪的依赖(这里是因为我多了测试install,所以package.json的依赖项有相关【估计很少人犯类似我这样子的错误了】
删除上面我圈住的那一行,再次发布,接着在另外一个项目install,如下图,成功安装,至此,npm发布到npm,从npm上install,并成功引用!!!