NPM社区发布一个包的流程

首选需要在NPM注册一个账号,这是前提哦

一、新建一个项目或者进入已有的项目根目录下

1
mkdir project-name && cd project-name

开始 coding. do something…

二、在项目文件夹下执行npm init

1
npm init

按照命令行的提示一步步填写即可,填写完毕会创建package.json

image.png

三、在项目文件夹下执行npm adduser,根据提示依次输入npm账号npm密码邮箱

image.png

可能结果往往不是我们想的那样,执行完上面的命令。很大可能我们会出现下面的报错,😝

image.png

原因是因为某些原因,我们都将npm的源改为了淘宝源或其他的,并不是npm官方的。改回来就好了

1
2
3
4
5
6
# 设置npm源为淘宝源
npm config set registry " https://registry.npm.taobao.org "
npm config set disturl https://npm.taobao.org/dist
# 删除npm源
npm config delete registry
npm config delete disturl

image.png

改回来以后再执行 npm adduser

image.png

成功以后,npm 会把认证信息存储到~/.npmrc 中,并且可以通过以下命令查看 npm 当前使用的用户

1
2
cat ~/.npmrc #查看存储的认证信息
npm whoami #查看当前用户

image.png

四、执行npm publish发布

1
npm publish

看到下图,就说明你发布成功了,你的邮箱也会收到通知,发布的版本号是根据你的package.json中的version字段来决定的

image.png

五、已发布的包的更新

如果需要更新包,需要先更新 package.jsonversion
不需要去文件内手动修改 package.jsonversion,执行这个npm version <update_type>命令就能修改,

  • update_type可选值如下表,根据包修改的程度来定你要修改那个位置的数字
  • 例:1.2.1对应<major>.<minor>.<patch>
    比如我想来个 2.0.0 版本,注意,是第一位修改了增 1,那么命令: npm version major
    比如我想来个 1.1.0 版本,注意,是第二位修改了增 1,那么命令: npm version minor
    比如我想来个 1.0.1 版本,注意,是最后一位修改了增 1,那么命令:npm version patch
update_type desc
major 这个是大版本更新,主要版本只有重大的更新才会修改它的值
minor 这个是小修小改,次要的
patch 这个是补丁的意思,补丁最合适
1
2
# 举例刚刚的project-name 我要发布1.0版本
npm version major

image.png

然后再重复执行第四步npm publish发布,见下图1.0.0发布成功

image.png

六、删除已发布的包

npm 会根据 package.jsonversion 删除该 version 的包

1
npm unpublish —-force

需要加—-force,不然会报错的

image.png