npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这个简单的例子开始,逐步对它进行封装-发布-更新-扩展-使用,进而到得一个相对完整的npm包,下面开始。
npm发布包步骤:
1.注册npm账号,记好账户名、密码和邮箱(邮箱收到邮件后一定要进行验证,否则会报错)
2.npm添加用户或登陆:npm login
# 注意 Password默认不会显示,注意输入正确。
3.更改npm源
平时我们可能用的是淘宝的镜像路径,毕竟国外npm
的速度令人感动,而淘宝的镜像只有下载功能,不支持上传npm包。所以先把npm源改回来,等到发布成功后再改回来。更改命令如下:
nrm use npm //切换为npm
nrm use taobao //切换为淘宝
前提是安装好nrm,否则需要执行以下命令:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装nrm: nrm安装与配置_Anway12138的博客-CSDN博客_安装nrm
4.制作自己的npm包
- 在目录下新建一个npm包的文件夹,尽量取得特殊一点,不然很容易很已有的冲突
-
初始化项目
在项目根目录下使用一下命令
npm init
这时终端会提示你输入诸如包名,版本号等信息,如下:
当然,你可以一路回车下来,或者你使用
npm init -y
就可以生成默认的package.json
文件,效果都是一样的,然后我们得到以下文件,简单说明一下:// package.json { "name": "toupper-case-project", // 包名称,默认和你文件夹同名,可改,但是需要去npm官网搜素这个名称是否已存在,因为包名不能重复 "version": "1.0.0", // 项目默认版本号,可改,如果项目后期更新再发布,则需要修改版本号 "description": "", // 项目描述,选填,可利于SEO "main": "index.js", // 你的包的主要入口路径,就是别人安装了你的包后系统会去这个路径找你的代码 "scripts": { // 脚本命令,后面会讲到,现在使用默认的就行 "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", // 作者,选填 "license": "ISC" // 许可证,默认即可 }
- 编写主文件:index.js(npm init默认的入口文件是index.js,这可以自己定义)
5.发布npm包:npm publish
在项目根目录下运行npm publish
即可发布,顺利的话就直接成功了,当然也可能会遇到问题:
-
第一个就是权限问题,也许报这样的错误
npm ERR! Error: EPERM: operation not permitted
,这时候就得使用管路员权限来进行发布了,window + x
会看到管理员终端选项,打开这个终端,然后再进行登录,发布即可。 -
第二个就是名称问题,就是你的包名在npm上已经存在了,所以在
package.json
中将你的包名改成其他的,这样再发布,应该就没问题了。
发布成功后显示如下:
登陆我们的npm,也可以看到我们发布的包
到这里,我们发布的第一个npm包就成功了!
6.更新包
在我们更新包的功能后,需要重新上传更新,
把package.json
中的版本号进行更改,正常来说加1即可,
将"version": "1.0.0"
改为"version": "1.0.1"
再运行npm publish
就可以直接把新的包覆盖上去。
7.删除已发布的包
-
运行
npm unpublish 包名 --force
命令,即可从npm
删除已发布的包 -
注意事项
-
npm unpublish
命令只能删除 72 小时以内发布的包 -
npm unpublish
删除的包,在 24 小时内不允许重复发布 -
发布包的时候要慎重,尽量不要往
npm
上发布没有意义的包!
-