工程化—关于npm(如何发布自己的npm包)

准备工作

  1. node版本v14.18.0以上
  2. 将npm更新至新版本(npm install -g npm@latest

一、注册npm账号

注册地址:www.npmjs.com/

二、初始化项目

新建项目目录,使用npm init命令创建package.json文件,按照提示填入初始信息。

如模块名称:mikey-npm-test(只能是小写)

初始版本号选择:v1.0.0

模块名称需遵循相关政策要求:www.npmjs.com/policies,不能够与已有NPM模块名冲突等等。

创建入口文件如index.js

function npmPublishTest(){
    var name = 'Mr.Mikey';
    var test = function() {
	console.log('Hello, my first NPM package')
    }
    return {
	name,
	test,
    }
}

module.exports = npmPublishTest()
复制代码

创建README.md文件,填写说明文档如:

1645685426.png

一个基本的npm包文件结构如下

1645685456.png

三、登录npm

注意源的问题,只有npm官方源可以登录成功,如果报错403,一般是因为非npm官方源,可通过npm get registry命令查看源信息,切换源可以使用nrm进行管理。

简单的处理方式是在不确定源的情况下直接命令后带上源地址:

npm login --registry https://registry.npmjs.org

根据提示输入之前注册的用户名、密码、邮箱,按回车后会发送验证邮件到注册邮箱,需填入验证码后再次回车确认,登录成功如下图所示

1645685591.png

四、发布npm包

注意源的问题,只有npm官方源可以发布成功,命令后带上源地址即可

npm publish --registry https://registry.npmjs.org

发布成功状态如下图所示

1645685802.png

登录npm官网即可看到已经发布的包

1645685875.png

五、后续更新npm包

修改代码后,执行命令自动叠加版本号:

npm version patch

每次产生修改发布必须要修改版本号,npm不允许修改内容后发布相同的版本号

npm version后面参数说明:

patch:小变动,比如修复bug等,版本号变动 v1.0.0->v1.0.1

minor:增加新功能,不影响现有功能,版本号变动 v1.0.0->v1.1.0

major:破坏模块对向后的兼容性,版本号变动 v1.0.0->v2.0.0

迭代版本号之后重复第四步:

npm publish --registry https://registry.npmjs.org

六、撤销发布(慎用)

npm unpublish 包名@版本号 --force (根据需要接上npm源地址)

示例:npm unpublish [email protected] --force --registry https://registry.npmjs.org

说明:撤销发布的包被认为是一种不好的行为,因为如果有团队使用和依赖你的包时,撤销便会造成很大的影响。

  1. 根据规范,只有在发包的24小时内才允许撤销发布的包

  2. 即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被"占用"了)

おすすめ

転載: juejin.im/post/7068170995298729991