一.初始化包的基本结构
1.新建一个my-tools的文件夹,作为根目录
2.在my-tools文件夹下新建三个文件
- package.json (包管理配置文件)
- index.js (包的入口文件)
- README.md (包的说明文档)
二.初始化package.json
{
"name":"my-tools-lxx",
"version":"1.0.0",
"main":"index.js",
"description": "提供深拷贝的方法",
"keywords":["clonedeep"],
"license": "ISC"
}
name:定义包名,名称是不能重复的,将来包叫什么,由这个name决定,和根目录无关
version:默认初始版本号
main:指定包的入口,将来使用require导入的就是main指向的这个文件
description:简短的描述包的信息
keywords:用户搜索的关键字
license:包所遵循的开源协议
三.在index.js中编写方法
//封装深拷贝的方法
let deepCopy = (data) => {
if (data == null) return;
let typeOf = (d) => {
return Object.prototype.toString.call(d);
};
let o = null;
if (typeOf(data) === '[object Object]') {
o = {};
for (let k in data) {
o[k] = deepCopy(data[k]);
}
} else if (typeOf(data) === '[object Array]') {
o = [];
for (let i = 0; i < data.length; i++) {
o.push(deepCopy(data[i]));
}
} else {
return data;
}
return o;
}
module.exports = {
//向外暴露成员
deepCopy
}
四.编写包的使用说明文档
五.发布包流程
5.1注册npm账号
- 访问www.npmjs.com/ 网站,点击
sign up按钮,进入注册页面 - 填写账号信息,Full Name、
Public Email、Username、password - 点击
Create an Account按钮,注册账号 - 登录邮箱,点击验证链接(非常重要)
5.2在终端登录npm账号
- 先确认把包的服务器地址切到npm的官方服务器
- 使用
nrm ls查看镜像地址 - 使用
nrm use npm切换回npm服务器
- 在终端执行
npm login命令,依次输入用户名、密码、邮箱后,即可登录成功。第一次登录会给邮箱发送一个验证码,验证完才能登录成功。 - 密码输入过程中不会显示密码,输完密码回车即可
5.3发布包
把终端切换到包的根目录下之后,运行npm publish命令,即可将包发布到npm上,查看npm账号,确认发布成功(因为my-tools有很多类似的,所以发布不通过,因此在package.json修改名字再次发布才成功)
六.删除发布的包
运行npm unpublish 包名 --force 命令,即可删除已发布的包。
注意点:
- npm unpublish只能删除72小时以内的包
- npm unpublish删除的包,在24小时内不允许重复发布
- 尽量不要发无意义的包