随心记录

Bug不空,誓不成佛

  menu
70 文章
14633 浏览
5 当前访客
ღゝ◡╹)ノ❤️

Npm 发布自己的包

什么是 Npm

npm 是 JavaScript 著名的包管理工具,是前端模块化下的一个标志性产物。简单来说就是通过 npm 下载模块,复用已有的代码,提高工作效率。

  • npm 由三个独立部分组成:
    • 网站
    • 注册表(registry)
    • 命令行工具(CLI)

前面的博客已有关于 npm 的大致介绍,这里不再详细说明,本次主要记录下如何在 npm 上发布自己开发的包或模块。

准备步骤

  • 首先需要在 https://www.npmjs.com/ 上有一个自己的账号,注册账号这里不再说明
  • 需要有一个已初始化过的项目

初始化的默认字段介绍

  • name:发布的包名,默认是上级文件夹名,不能与现有 npm 中的包名重复,包名不能含有大写字母、空格、下划线。
  • version:包的版本号,默认是 1.0.0 对于 npm 包的版本号有着一系列的规则,模块的版本号采用 x.y.z 的格式,具体体现为
    • 1、修复 bug,小改动,增加 z
    • 2、增加新特性,增加 y
    • 3、有很大的改动,增加 x
  • description:项目简介
  • main:入口文件,默认 index.js,可以修改自己的文件
  • scripts:包含各种脚本执行命令
  • test:测试命令
  • author:作者名,写自己的账号名
  • license:开源协议,使用默认即可
  • 可以在 package.json 中添加属性来配置 git 仓库地址
    "repository": { 
    	"type": "git",
    	 "url": "git@github.com/test.git"
     }
    

登录账号

如果第一次发布 npm 的话需要配置下账户,如下所示:

npm login 或者 npm adduser
1.  Username: user.name(自己注册的用户名)
2.  Password: user.password(自己注册的密码)
3.  Email: (this IS public) xxxxxxxx@qq.com(自己的邮箱)
4.  Logged in as xxx on https://registry.npmjs.org/.(成功提示)

ps:如果登录失败,可以尝试临时换下官方镜像进行登录。

npm config set registry https://registry.npmjs.org #设置官方镜像源
npm config set registry https://registry.npm.taobao.org #发布完毕可以在设置回淘宝镜像源

添加完成后可以使用:npm whoami命令查看当前登录状态

publish 发布

  • 命令:npm publish
    成功通知: + testpack@1.0.0
    发布成功后可以通过 npm 官方看到自己已发布的包
  • 安装自己的包
    • 像其他包一样,直接使用命令:npm i/install testpack 即可

删除包

命令执行:npm unpublish
示例如下:

  1. npm unpublish testpack@1.0.0 删除某个版本
  2. npm unpublish testpack --force 删除整个 npm 市场的包
    删包推荐说明:npm unpublish的推荐替代命令:npm deprecate[@],并会在社区里撤销你已有的包,但会在任何人尝试安装这个包的时候得到警告,例如:npm deprecate testpack '这个包已不再维护'
    ps:如果报有关权限的错误,加上 --force

更新包

假设第一次创建的包默认版本为 v1.0.0,你已经做了修改,那么要更新到远程需要使用以下方法,注:查看包的版本命令可以使用 npm view testpack versions 查看

  • 在本地更新这个包的版本,使用命令 npm version <update_type>
  • 提交到远端 npm 中,使用命令 npm publish
  • 修改版本一般规则:依赖于 update_type,以版本号 1.0.0 为例
    • patch:英文为补丁意思,小更改建议使用,执行一次结果为 1.0.1
    • minor:做了一些更改添加了一些方法比 patch 的感觉再多了点,结果为 1.1.0
    • major:做了大更改,执行结果为 2.0.0

总结

npm 个人包的发布,更新,删除简单基本使用就这么多了,值得注意的是 npm 社区有以下规则,删除同名的包需要在 24 小时候才能重新发布已发布的包只能在 72 小时内才能删除,否则后悔后只能通过官方来帮你解决了

希望所有的 Bug 都会报错~