1、创建自己的npm账号
注册传送门 注册后注意要验证邮箱,避免发包时提示你需要验证邮箱
2、创建一个简单的npm包
1.在本地创建一个文件夹:如:jiang-model(注意名字应该是npm上没有的,可以在npm上搜索一下看你命的名字是否存在)
2.cd进入该文件夹
3.初始化项目,执行 npm init -y 得到package.json文件
//package.json
{
"name": "jiang-model",//发布的包名,默认是上级文件夹名。不得与现在npm中的包名重复。包名不能有大写字母/空格/下滑线!
"version": "1.0.0",//默认版本号
"description": "",//项目简介
"main": "index.js",//入口文件,默认是Index.js,可以修改成自己的文件
"scripts": { //包含各种脚本执行命令
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",//作者
"license": "ISC"//开源文件协议
}
4.在文件夹jiang-model中创建名为index.js的文件,如下:
// index.js
const add = function(x,y){
console.log("两个数相加的方法")
return x-0+y-0
}
module.exports = {add}
此文件导出了一个名叫add的函数
5.本地测试这个方法是否有效,可以写一个test.js文件(如果觉得不需要测试,则不需要这一步)
在当前目录下运行node test.js 便可以打印出 3,证明方法正确
6.创建README.md文件
该文件名必须为README.md,此文件可以写一些描述自己npm包的说明,便于使用者查看。
3、发布到npm
1.切换下载源 安装 npm install -g nrm
nrm ls //查看当前的下载源,带*指向的就是当前的下载源,如果为npm则不需要切换
nrm use npm //切换到npm的下载源
2.连接npm账户
1)如果是本机第一次发布npm包
在终端中运行命令:npm addUser 提示输入账号,密码和邮箱,然后将提示创建成功,具体如下图:
2)非第一次发布npm包
在终端输入npm login,然后输入你创建的账号和密码,和邮箱,登陆,结果同上。
3.发布npm包
npm publish
发布成功如图:
4.更新npm发布后的包
更新npm包也是使用npm publish命令发布,不过必须更改npm包的版本号,也就是package.json中的version字段,否则会报错,如图:
版本更改
package.json里面有一个version字段,版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
例如:我原本的项目是1.0.0版本的话
主版本号:当你做了不兼容的 API 修改,此情况版本应该为1.0.1
次版本号:当你做了向下兼容的功能性新增,此情况版本应该为1.1.0
修订号:当你做了向下兼容的问题修正。此情况版本应该为2.0.0
通过npm version <update_type>自动改变版本
update_type为patch, minor, major其中之一,分别表示补丁,小改,大改。
5.撤销命令 (一般是慎重撤销)
npm unpublish 包名@版本号 --force
eg:npm unpublish testtoast@1.0.0 --force
说明:撤销发布的包被认为是一种不好的行为,因为如果有团队使用和依赖你的包时,撤销便会造成很大的影响。
1.根据规范,只有在发包的24小时内才允许撤销发布的包
2.即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)