NPM包发布方法
# 初始化包
npm init
1
# 登录npm
npm login
1
# 发布包
npm publish
1
# QA
# 需要登录问题
Q:
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
1
2
3
2
3
A: 输入npm login进行登陆,初次登录会发送邮件确认,npm adduser也行
# 邮箱未验证问题
Q:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! you must verify your email before publishing a new package: https://www.npmjs.com/email-edit : your-package
1
2
3
2
3
A: 登录npmjs.com ,为自己的账号绑定一个可用的邮箱即可
# 没有权限发布
Q:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You do not have permission to publish "your-package". Are you logged in as the correct user? : your-package
1
2
3
2
3
A: npm包发布重名, 通常我们在包头部加自己的名字 如: @caidix/ (package name), 来避免重名
# 包名过于类似
Q:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! Package name too similar to existing packages;your-package
1
2
3
2
3
A: npm包类似,同理也是修改包名逻辑
# 只有管理员才有权限发布
Q:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! [no_perms] Private mode enable, only admin can publish this module [no_perms] Private mode enable, only admin can publish this module: your-package
1
2
3
2
3
A: 通常出现在我们使用nrm包修改了镜像源, 推荐使用nrm, nrm ls 查看使用中的镜像,切换成npm镜像即可。 nrm use npm
# 无法发布到私有包
Q:
npm ERR! publish Failed PUT 402
npm ERR! code E402
npm ERR! You must sign up for private packages :
1
2
3
4
2
3
4
A: 这个当你的包名为@your-name/your-package时才会出现,原因是当包名以@your-name开头时,npm publish会默认发布为私有包,但是 npm 的私有包需要付费,所以需要添加如下参数进行发布:
npm publish --access public
1
# 版本号
npm包的版本号也是有规范要求的,通用的就是遵循semver语义化版本规范,版本格式为:major.minor.patch,每个字母代表的含义如下:
- 主版本号(major):当你做了不兼容的API修改
- 次版本号(minor):当你做了向下兼容的功能性新增
- 修订号(patch):当你做了向下兼容的问题修正
先行版本号是加到修订号的后面,作为版本号的延伸;当要发行大版本或核心功能时,但不能保证这个版本完全正常,就要先发一个先行版本。 先行版本号的格式是在修订版本号后面加上一个连接号(-),再加上一连串以点(.)分割的标识符,标识符可以由英文、数字和连接号([0-9A-Za-z-])组成。例如:
1.0.0-alpha
1.0.0-alpha.1
1.0.0-0.3.7
1
2
3
2
3
常见的先行版本号有:
- alpha:不稳定版本,一般而言,该版本的Bug较多,需要继续修改,是测试版本
- beta:基本稳定,相对于Alpha版已经有了很大的进步,消除了严重错误
- rc:和正式版基本相同,基本上不存在导致错误的Bug
- release:最终版本
在版本号中,我们经常会看到^、~或者>=这样的标识符,或者不带标识符的,这都代表什么意思呢?
- 没有任何符号:完全百分百匹配,必须使用当前版本号
- 对比符号类的:>(大于) >=(大于等于) <(小于) <=(小于等于)
- 波浪符号~:固定主版本号和次版本号,修订号可以随意更改,例如~2.0.0,可以使用 2.0.0、2.0.2 、2.0.9 的版本。
- 插入符号^:固定主版本号,次版本号和修订号可以随意更改,例如^2.0.0,可以使用 2.0.1、2.2.2 、2.9.9 的版本。
- 任意版本*:对版本没有限制,一般不用
- 或符号:||可以用来设置多个版本号限制规则,例如 >= 3.0.0 || <= 1.0.0
# git动态标徽
https://img.shields.io/github/issues/{github用户名}/{仓库名}.svg
https://img.shields.io/github/forks/{github用户名}/{仓库名}.svg
https://img.shields.io/github/stars/{github用户名}/{仓库名}.svg
https://img.shields.io/github/license/{github用户名}/{仓库名}.svg
1
2
3
4
2
3
4
编辑 (opens new window)
上次更新: 2023/03/22, 15:28:00