发布一个持续集成的npm包

贼简单,分三步走!
自己搞了个简单的vue cli 并已经发布成功 。欢迎查看
npm地址:https://www.npmjs.com/package/krkr-cli
相信你看完也能发布属于自己的第一个npm包 加油~!

第一步:

准备工作
你需要安装 node 。
你需要有一个 github 账号。并且你的项目已经推送到了github。
你需要有一个 npm 账号。注册npm
如果没有账号,先去注册吧。

第二步:

package.json


package.json里面的一些东西是需要你配置好的
{
  "name": "v-selector",//你的npm包的名字,你发布成功之后,下载时打的名字
  "version": "1.0.0",//版本号
  "description": "",
  "main": "main.js",//你的包的主要入口,就是别人安装了你的包,require('v-selector')时会去这个路径找代码
  "scripts": {//一些你开发时的脚本
    "test":'',//这里是你的测试脚本文件,使用travis持续集成时,默认会跑这里的测试脚本。关于测试脚本,这里不做描述,以后会专门写一篇介绍。
    "lint": "eslint ./src",
    "server": "export type=development&&webpack-dev-server",
    "dev-build": "export type=development&&webpack",
    "prod-build": "export type=production&&webpack"
  },
  "author": "xxx",
  "license": "ISC",
  //...后面都是项目相关的配置项,此处省略
  }

版本号
主版本号:当你做了不兼容的API 修改。 次版本号:当你做了向下兼容的功能性新增。 修订号:当你做了向下兼容的问题修正。

第三步:

开始发布
前面你已经注册了npm账号,这里就可以用这个号来发布了。但是npm怎么知道你要用什么号发布呢?需要一条命令来告诉它你的账号和密码。
npm adduser
在接下来的几行命令行中输入你的账号密码以及注册时填写的邮箱。
现在我们可以开始发布了,在项目根目录执行命令:
npm publish
这时 npm 就会读取你package.json里面的配置来进行发布。
有的小伙伴到这里就报错了。有很大一部分都是 E401 错误。这里我来告诉大家绝大多数的原因都是啥。
踩坑和填坑
回想一下,曾几何时,刚接触npm时,等了几十分钟乃至数个小时也无法安装成功依赖包,然后你是不是做了一件事,把源切换到了淘宝。。。
这里就要切换回来,不建议手动去修改配置文件,不是很智能,这里有一个别人做好的轮子,专门来做源切换这件事。
执行命令
npm install -g nrm
之后执行 nrm ls
结果是这样的

  • npm ---- https://registry.npmjs.org/
    cnpm — http://r.cnpmjs.org/
    taobao - https://registry.npm.taobao.org/
    nj ----- https://registry.nodejitsu.com/
    rednpm - http://registry.mirror.cqupt.edu.cn/
    npmMirror https://skimdb.npmjs.com/registry/
    edunpm - http://registry.enpmjs.org/

如果你的星号 *在淘宝那里,这可能就是发布失败的原因了,请执行命令:
nrm use npm
这时你的源就切回来了。
然后再次执行
npm publish
如果同样还是 E401 错误,就干脆全弄干净来一遍。具体操作如下:
1、请删除 .npmrc (后面说一下这个文件在哪)文件的全部内容。
2、执行 nrm use npm
3、执行 npm adduser ,重新填入你的账号密码和邮箱。需要注意的是,上面三个步骤的顺序最好不要改,不然你可能折腾几次就不好使。一定要,先清空,在切源,再添加账号。
怎么这么多坑?!是的就是这么多坑!不过仔细想一想,也不是坑,人家都说的很清楚了。原因很大可能是你注册npm账号的时候忘记了验证自己的邮箱。
回到npm网站,登录你的账号,页面最顶部会有醒目的黄黄的提示,你需要验证你的邮件。验证完了再发布吧!这下应该就木有问题了!


part2:
保姆级教程

嘻嘻
https://juejin.cn/post/6844903749199069197

你可能感兴趣的:(npm&脚手架,npm,ci,前端)