发布一个npm包

452 阅读2分钟

npm包简介

说明:这里只说个人包,忽略团体包。

| 分类 | 付费 | 读、下载 |发布 | |---- - -|--------|---------- --| -| | 公有包(public、unscoped) | 否 | 所有人 | 包作者、有发布权限的人 | | 带命名空间的私有包(public、scoped) | 否 | 所有人 | 包作者、有发布权限的人 | | 带命名空间的公有包(private、scoped) | 是 | 包作者、有读权限的人 | 包作者、有发布权限的人 |

准备工作

  1. 注册一个npm账号:注册地址
  2. 安装nrm(已安装请忽略)
1.安装:npm install nrm -g
2.查看nrm版本:nrm -V
3.查看当前源:nrm ls  // 带星号为当前选中
4.切换源:nrm use npm
  1. 在终端登录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天的包将不可删除!

最后,建议大家删除自己用来测试的包,保持社区的纯净。