伴随着 Node 的兴起,npm 成为了前端工程中的模块小管家。当攻城狮们要在项目中使用第三方的开源框架或工具时,一行 npm install
就能把需要的东西从 npm 的服务器下载到本地。
在 npmjs.com
上可以看到目前已发布的所有 package。截止 2020 年 2 月 16 日,npm 上一共有 120 万个 package,周下载次数高达 160 亿次(真的多...)。
![](https://i-blog.csdnimg.cn/blog_migrate/afda048fb45d1748bd4eef5bc266345c.png)
比如我们熟知的 Vue 和 React 就在这 120 万个 package 中。
发布一个 node package 的过程并不复杂,就像发一条朋友圈一样简单,大致分为以下几步:
拥有一个可发布的项目
注册一个 npm 账号(如果有的话就不需要了)
验证邮件
发布!
不废话了,借由一个名叫 konsole 的例子,开始!
初始化项目
这里的初始化倒不是说怎么写代码,而是做一些发布前必须的初始化工作。简单来说,我们需要一个 package.json 文件,这是必须的。其中会包含比如名称、描述、作者、版本等信息,这些对于一个 node package 来说都是必不可少的。
一般情况下,只需要一条 npm init
命令,就会进入 package.json 的新建过程。全程是问答式的,填写完必要信息以后确认就行。
![](https://i-blog.csdnimg.cn/blog_migrate/d5acb94ee2c70341301bd2943d5f93bb.png)
注册 npm 账号
正如发布一条朋友圈需要一个微信账号一样,发布 node package 需要一个 npm 账号。
账号的注册也是一条命令就可以解决的事情:npm adduser
,注意是 adduser 不是 add user。注册账号的过程也是问答式的,填完信息回车确认即可。
需要验证邮箱,否则不能发布任何东西。
![](https://i-blog.csdnimg.cn/blog_migrate/3ff29bcde40b0cb40321585bade18ea4.png)
发布!
万事具备,只欠发布:
npm publish <folder>
在第一次发布时,我遇到了这样的错误:
报错信息告诉我没有权限发布这个 package,我露出了黑人问号脸.png,我自己的东西我怎么没有权限呢......
我灵机一动,可能是名字冲突的问题?于是去 npmjs.com 上搜索了 konsole,果不其然,已经有一个名叫 konsole 的 package 了。
于是我在 package.json 里面改了名字,再次发布!
![](https://i-blog.csdnimg.cn/blog_migrate/933e9241888da88410e521aa715a0f8a.png)
舒服,成功了。
权限管理
node package 的权限管理可以让开发者自行添加和删除拥有管理当前 package 的角色。
npm owner ls
: 查看所有“管理员”npm owner add
: 添加“管理员”npm owner rm
:移除“管理员”
最后
以上,是发布一个 node package 需要掌握的所有“技能”,hope u enjoy : )