发布属于自己的npm包

前言

我们的项目随时都在安装和使用各种npm包,这时候有童鞋想要拥有自己的npm包并且让别人也能使用。这时我们应该怎么做尼?下面,本文将带你一步一步创建自己的npm包并发布到npm。

准备工作

  1. 首先我们要注册npm账户

注册传送门

  1. 全局安装nrm管理npm仓库 —(非必要,只是为了方便切换)

    npm i nrm -g
    
    • nrm是npm仓库管理的软件,可用于npm仓库的快速切换

      nrm常用命令
      
      nrm //展示nrm可用命令
      nrm ls //列出已经配置的所有仓库
      nrm test //测试所有仓库的响应时间
      nrm add <registry> <url> //新增仓库
      nrm use <registry> //切换仓库
      
发布包

  1. 创建工程文件夹
mkdir magic-demo-npm && cd magic-demo-npm
  1. 创建package.json
npm init
  • 按照提示一步步完善即可,也可使用npm init -y使用npm默认设置,稍后再通过编辑package.json修正。
    注意:本次演示的包的入口文件是index.js,请务必确保package.json中字段main对应的值是“index.js”。

  • 创建结果

    {
      "name": "magic-demo-npm",
      "version": "1.0.0",
      "description": "my first npm",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [
        "npm"
      ],
      "author": "magic_yuanwei",
      "license": "ISC"
    }
    
  1. 创建README.md
### magic-demo-npm

This is my first npm package!

It is just for learning.
  1. 创建index.js
module.exports = {
    printMsg: function () {
        console.log('this message is from magic-demo-npm!');
    }
}
  • 最终目录结构
└── magic-demo-npm
    ├── README.md
    ├── index.js
    └── package.json
  1. 发布包
npm publish
  • 注意:可能会遇到报错

    1. 我们没有登录
    • -----------解决办法:npm adduser

    • -----------依次输入-用户名-密码-邮箱

    2.镜像源不对

    • 用nrm切换到npm仓库,执行命令nrm use npm

以上问题解决后再次执行发布命令npm publish,发布成功。

使用就和正常包使用一样,npm install就行了。

迭代

npm包的每次迭代都要涉及到两个方面:

  • 内容的变更
  • 版本的变更
  1. 内容变更
module.exports = {
    printMsg: function () {
        console.log('this message is from magic-demo-npm!');
        console.log('update')
    }
}
  1. 版本变更

npm采用语义化版本,共三位,以’.’隔开,从左至右依次代表:主版本(major)、次要版本(minor)、补丁版本(patch)。

例如:1.0.0 major.minor.patch

关于版本变更规范:

代码状态等级规则版本样例
首次发布新项目发布以1.0.0开始1.0.0
bug修复,向后兼容补丁版本发布变更第三位数字1.0.1
新功能,向后兼容次版本发布变更第二位数字,且第三位重置为01.1.0
重大变更,不向后兼容主版本发布变更第一位数字,且二三位重置为02.0.0

变更版本号的命令:npm version <major | minor | patch>

假如我们本次是次要发布,我们执行命令:

npm version minor

版本也就变成了

{
  "name": "magic-demo-npm",
  "version": "1.1.0",
  "description": "my first npm",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "npm"
  ],
  "author": "magic_yuanwei",
  "license": "ISC"
}

发布

npm publish

安装更新

npm up magic-demo-npm
废弃/删除

npm包发布后可以对包进行废弃或删除操作,废弃和删除的区别在于:

  • 废弃不会将包或版本从npm仓库删除,仍然可以继续下载安装,并在安装的时候会有警示
  • 删除会将包从npm彻底删除,无法被下载安装

无论是废弃还是删除,都包含两个层面:

  • 版本的废弃/删除
  • 包的废弃/删除
  1. 废弃

语法:npm deprecate <pkg>[@<version>] <message>

npm deprecate magic-demo-npm 'test deprecate'
  1. 删除

npm不鼓励任何形式的删除,主要因为我们发布的包可能已经被其他人引用,如果我们删除了此包,其他人在重新安装含有我们包的依赖的工程时,出现找不到包问题。

基于此,npm做了相关的删除限制:

  • 删除的版本24小时后方可重发!
  • 只有发布72小时之内的包可以删除!
npm unpublish magic-demo-npm --force
到此结束,有兴趣的小伙伴不妨自己动手试一试。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值