前言
我们的项目随时都在安装和使用各种npm包,这时候有童鞋想要拥有自己的npm包并且让别人也能使用。这时我们应该怎么做尼?下面,本文将带你一步一步创建自己的npm包并发布到npm。
准备工作
- 首先我们要注册npm账户
注册传送门
-
全局安装nrm管理npm仓库 ---(非必要,只是为了方便切换)
npm i nrm -g
-
nrm是npm仓库管理的软件,可用于npm仓库的快速切换
nrm常用命令 nrm //展示nrm可用命令 nrm ls //列出已经配置的所有仓库 nrm test //测试所有仓库的响应时间 nrm add <registry> <url> //新增仓库 nrm use <registry> //切换仓库
-
发布包
- 创建工程文件夹
mkdir magic-demo-npm && cd magic-demo-npm
- 创建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" }
- 创建README.md
### magic-demo-npm
This is my first npm package!
It is just for learning.
- 创建index.js
module.exports = {
printMsg: function () {
console.log('this message is from magic-demo-npm!');
}
}
- 最终目录结构
└── magic-demo-npm
├── README.md
├── index.js
└── package.json
- 发布包
npm publish
-
注意:可能会遇到报错
- 我们没有登录
-
-----------解决办法:
npm adduser
-
-----------依次输入-用户名-密码-邮箱
2.镜像源不对
- 用nrm切换到npm仓库,执行命令
nrm use npm
以上问题解决后再次执行发布命令npm publish
,发布成功。
使用就和正常包使用一样,npm install就行了。
迭代
npm包的每次迭代都要涉及到两个方面:
- 内容的变更
- 版本的变更
- 内容变更
module.exports = {
printMsg: function () {
console.log('this message is from magic-demo-npm!');
console.log('update')
}
}
- 版本变更
npm采用语义化版本,共三位,以’.’隔开,从左至右依次代表:主版本(major)、次要版本(minor)、补丁版本(patch)。
例如:1.0.0
major.minor.patch
关于版本变更规范:
代码状态 | 等级 | 规则 | 版本样例 | 首次发布 | 新项目发布 | 以1.0.0开始 | 1.0.0 | bug修复,向后兼容 | 补丁版本发布 | 变更第三位数字 | 1.0.1 | 新功能,向后兼容 | 次版本发布 | 变更第二位数字,且第三位重置为0 | 1.1.0 | 重大变更,不向后兼容 | 主版本发布 | 变更第一位数字,且二三位重置为0 | 2.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彻底删除,无法被下载安装
无论是废弃还是删除,都包含两个层面:
- 版本的废弃/删除
- 包的废弃/删除
-
废弃
语法:npm deprecate <pkg>[@<version>] <message>
npm deprecate magic-demo-npm 'test deprecate'
-
删除
npm不鼓励任何形式的删除,主要因为我们发布的包可能已经被其他人引用,如果我们删除了此包,其他人在重新安装含有我们包的依赖的工程时,出现找不到包问题。
基于此,npm做了相关的删除限制:
删除的版本24小时后方可重发!
只有发布72小时之内的包可以删除!
npm unpublish magic-demo-npm --force
到此结束,有兴趣的小伙伴不妨自己动手试一试。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!