npm -np 包发布工具

先说一个例子:raect 举例

1、 首先有一个github仓库

2、需要发布在npm上

3、遵循语义化版本(Semantic versioning:如17.0.1, 较大变动递增高位,一般变动递增中位,较小变动递增低位)

4、每次更新都有一个git tag,即有不同版本号并存,同时在releases 中记录每次更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bHY6scrF-1683739177514)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230508001902379.png)]

发包工作

因此发布需要做的事:

1、运行测试用例(有的话)

2、更新 package.json 版本号

3、创建 git tag 和 release 记录变动

4、发布到github 和 npm

np 工具

以上步骤可以使用 np 工具快速完成,推荐使用国内镜像,不然可能很慢 或者 失败

国内镜像: npm config set registry https://registry.npm.taobao.org

安装:npm i np -g

使用 np 前提:

  • 项目是一个Git 仓库、至少 push 过一次 、执行np时不能有未push提交的文件

np 使用

1、开发完成后,commit 提交

2、npm login 登陆 (发布必须)

3、运行 np 命令,选择版本增量方式,上下键到对应选项,enter,或自定义

注意:包名不要冲突,空间命名要和npm用户名一致,否则抛出异常

可能会提示:(可以忽略)

Warning: No files field specified in package.json nor is a .npmignore file present.
Having one of those will prevent you from accidentally publishing development
-specific files along with your package's source code to npm.

大意为:package.json中没有指定files字段,也不存在.npmignore文件。拥有其中一个可以防止您意外地将特定于开发的文件以及包的源代码发布到npm。

根据提示选择版本号:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrAzGg3D-1683739177524)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230510001912454.png)]

注意:np会自动运行 test 测试命令,初始化后的package.json文件 test 默认是抛出错误的,需要自行更改,见下文(问题)

在流程的最后。np 会启动浏览器窗口,在这写你的 release notes。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cl4bk2p1-1683739177526)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230511010517547.png)]

填写后确认

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMTTpk9x-1683739177527)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230511010808650.png)]

问题:

运行test报错

np自动运行 npm test命令作为 np checks的一部分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-icKbT3JO-1683739177529)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230510005420334.png)]

发生这个错误,是因为执行 npm test命令后的返回结果(exit 1,非0 都是抛出错误)。

也可以尝试手动执行 npm test :(抛出错误)

打开 package.json 文件,修改 test脚本来修复这个 error,如下:

"scripts": {
 -  "test": "echo \"Error: no test specified\" && exit 1"
 +  "test": "echo \"No test specified\""
},

np执行后,没有结果,也没报错?

如果没有push,尝试 push 后再操作,也有可能是网络问题,无响应

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtqCvyL7-1683739177530)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230510011242456.png)]

np执行报错,但是去npm上看,包已经发布了

在 publishing 完成后(即已经发布到npm)后报错,

原因是:报错原因

上一次 np 失败后版本号被缓存,表示当前版本已存在,不可以重复发布,可以修改版本号后两位数字,提高版本号来解决

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fcrAXErZ-1683739177531)(C:\Users\LENOVO\AppData\Roaming\Typora\typora-user-images\image-20230511004240324.png)]

如果发现发布的版本有bug怎么办?

  1. 快速修复好bug,发布新的版本
  2. 撤回上一个版本,修改好之后重新发布

撤回某个版本命令如下:

npm unpublish xxxx@4.0.26

撤回整个包(谨慎操作

npm unpublish <package-name> -f
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值