npm包简介
说明:这里只说个人包,忽略团体包。
| 分类 | 付费 | 读、下载 |发布 | |---- - -|--------|---------- --| -| | 公有包(public、unscoped) | 否 | 所有人 | 包作者、有发布权限的人 | | 带命名空间的私有包(public、scoped) | 否 | 所有人 | 包作者、有发布权限的人 | | 带命名空间的公有包(private、scoped) | 是 | 包作者、有读权限的人 | 包作者、有发布权限的人 |
准备工作
- 注册一个npm账号:注册地址
- 安装nrm(已安装请忽略)
1.安装:npm install nrm -g
2.查看nrm版本:nrm -V
3.查看当前源:nrm ls // 带星号为当前选中
4.切换源:nrm use npm
- 在终端登录npm账号
1.执行:npm login
2.依次出入正确的 账号、密码、邮箱
完成登录
特别提醒:发包必须切为npm源。
发布包
(1)创建文件夹,初始化项目
npm init -y // 公有包
或
npm init --scope=@xxx -y // 带命名空间的包
上面使用默认配置,如果想自己一步步配置,运行npm init
生成 package.json 文件
{
"name": "xxx-test-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
name: 包的名称,如果是带命名空间的,则会变为@xxx/xxx-test-package
main: 入口文件,这里以index.js为入口
(2)在根目录创建index.js
在index.js文件中写逻辑代码
module.exports = {
myFirstPkg: function () {
console.log('this is from my first public package!');
}
}
现在文件夹目录如下:
(3)发布
npm publish // 发布公有包
或
npm publish --access public // 发布带命名空间的包,npm publish默认私有需要付费
发布成功:
(4)到npm官网搜索
在项目中安装这个插件:
npm i xxx-test-package
(5)迭代
npm采用语义化版本,共三位,以’.’隔开,从左至右依次代表:主版本(major)、次要版本(minor)、补丁版本(patch)。
例如:1.0.0 对应 major.minor.patch
1.查看版本列表:npm view xxx-test-package versions // xxx-test-packag 为包名
2.更新版本号:npm version <major | minor | patch> // 自动帮你更新叠加版本编号
(a)再次发布:
npm publish
(b)在项目中更新这个插件:
npm up xxx-test-package
(6)删除
npm unpublish xxx-test-package --force
npm做了删除限制:
1. 删除的版本24小时后可重发
2. 只有发布72小时之内的包可以删除
也就是说,发布超过3天的包将不可删除!
最后,建议大家删除自己用来测试的包,保持社区的纯净。