npm 发布自己写的包包
2016-11-16 本文已影响1580人
卖梦想的男孩
npm安装的package一般支持下面几大类:
- 本地包
- url远程包
- 仓库中的包
具体看这里这里主要讲的是发布到npm-registry供所有人使用。
新的npm管理,yarn
注册
既然是发布包包到公共的平台上,一般都需要一个身份象征或标识,首先到npmjs上注册一个账号传送门
登录
$ npm adduser
Username:
Password:
Email:
发布
$ npm init //生成package.json,如果有就不用了
$ npm publish [floder] //不带参数默认是当前目录
常见问题
- auth required for publishing
没有登录成功,需要重新认证,或者到npmjs后台查看登录token,可删掉从新登录 - no_perms Private mode enable, only admin can publish this module
这种一般是修改了npm镜像的原因,修改会npmjs镜像就好了
npm config set registry=http://registry.npmjs.org
建议国内采用淘宝的cnpm,发包的时候使用npm 传送门
- you do not have permission to publish "your module name". Are you logged in as the correct user?
这种很可能是你的包名已经被别人占用了,只能修改package.json中的name,重新发布。
如果你确定你的包名没有被占用,还有一种可能是本地测试的时候link过或安装过,缓存中已经存在该包,但是测试的时候信息不一致造成的,删除用户npm目录下的自己的包,尝试重新publish。 - Request Entity Too Large
这种一般是因为包目录下包含了多余的或者不需要上传到npmjs的文件,在包目录下新建一个.npmignore忽略了就行,规则类似.gitignore - You cannot publish over the previously published version
意思是你已经发不过一个该版本的包包,升级一下package.json中的版本号即可。 - 出现问题仔细看npm-debug.log