npm 发布组件常见错误
2019-03-21 本文已影响1人
星辰大海_王
npm 发布组件时遇到的一些常见报错,这里记录一下,方便查找解决方法:
一、npm publish 发布时错误:
1. verbose stack Error: EISDIR: illegal operation on a directory, read...
错误分析:
EISDIR代表“错误,是目录“这意味着npm试图对文件做一些事情,但它是目录。在你的例子中,国家预防机制试图“读“一个文件,它是一个目录(第4行)。由于操作无法完成,因此将引发错误。
这里有三件事要确定:
- 确保文件存在。如果没有,则需要创建它。(如果NPM依赖于文件中的任何特定信息,则需要在文件中提供该信息)。
- 确保它实际上是一个文件,而不是目录。
- 它有正确的权限。您可以使用“sudo chmod 777文件”更改该文件具有所有权限。
解决方法:
我这里检查发现.gitignore文件是文件夹的形式,应该是文件的形式存在,改成文件就可以了。
2.http fetch PUT 401 http://registry.npmjs.org/react-native-hh-button-view801ms
19 verbose stack Error: 401 Unauthorized - PUT http://registry.npmjs.org/react-native-hh-button-view- You must be logged in to publish packages.
解决方法:
查看npm 的登录状态:npm whoami,登录失效时,重新登录:npm login
3.verbose stack Error: 403 Forbidden - PUT http://registry.npmjs.org/react-native-hh-button-view- You cannot publish over the previously published versions: 1.0.0.
解决方法:
组件版本已存在,更新版本,重新npm publish
4.http fetch PUT 403 https://registry.npm.taobao.org/react-native-hh-button-view547ms
19 verbose stack Error: 403 Forbidden - PUT https://registry.npm.taobao.org/react-native-hh-button-view- no_perms
错误分析:
当前的registry 是taobao镜像,需要改为npmjs
解决方法:
需要切回到npmjs源,输入以下命令:
$ npm config set registry http://registry.npmjs.org/
5.403 Forbidden - PUT http://registry.npmjs.org/react-native-app-info - You do not have permission to publish "react-native-app-info". Are you logged in as the correct user?
错误分析:
如果你想发布组件react-native-app-info,而react-native-app-info恰恰已经被别人发不过,这里会提示你发布失败,检测账户是否登录或账户是否匹配
解决方法:
这是一个杯具,所以我们在开发组件前,最好去确认名字是否已经被占用`