首先回顾一下什么叫包?
Node.js 中的第三方模块又叫做包。(包是由第三方个人或团队开发出来的,免费供所有人使用。)
注意:Node.js 中的包都是免费且开源的,不需要付费即可免费下载使用。
下载包:npm (npmjs.com)https://www.npmjs.com/它是全球最大的包共享平台,你可以从这个网站上搜索到任何你需要的包。
可以在包管理工具中下载所需要的包。
- 首先可以使用 npm -v 命令,来查看自己电脑上所安装的 npm 包管理工具的版本号。
- 在项目中安装指定的包可以:npm install 完整的包名 ,(install可以省写为i)且可以在包名之后,通过 @ 符号指定具体的版本。@符号之后版本号的三个数字分别代表:大版本、功能版本、Bug修复版本
- 然后使用 require() 导入所需要的包。
- 在参考官方文档进行使用即可。
进行这些步骤之后你已经初次装包完成。
那么在你的项目文件夹下会多一个叫做 node_modules 的文件夹和 package-lock.json 的配置文件。
其中: node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包。
package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,用来记录与项目有关的一些配置信息。例如: 项目的名称、版本号、描述等 项目中都用到了哪些包 哪些包只在开发期间会用到 那些包在开发和部署时都需要用到
注意:不要手动修改 node_modules 或 package-lock.json 文件中的任何代码,npm 包管理工具会自动去维护它们。
我们也可以自己新建package.json,npm 包管理工具提供了一个快捷命令,可以在执行命令时所处的目录中,快速创建 package.json 这个包管理配置文件: npm init -y .
但是要注意的是这个命令只能在英文的目录下成功运行,也不能出现空格。
更多的可以看 node基础及模块化
接下来可以开发自己的包啦~
1、需求:格式化日期 转义 HTML 中的特殊字符 还原 HTML 中的特殊字符
2、初始化包的基本结构:
新建 itheima-tools 文件夹,作为包的根目录
在 itheima-tools 文件夹中,新建如下三个文件:
- package.json (包管理配置文件)
- index.js (包的入口文件)
- README.md (包的说明文档)
3、格式化package.json:
{ "name":"w-tools", "version":"1.0.0", "main":"index.js", "description": "提供了格式化时间、HTMLEscape相关的功能", "keywords": [ "tools", "dateFormat", "escape" ], "license": "ISC" }
name提供了包名(设置包名时可以去npm搜索一下是否重名, version提供包版本号,main指定包的入口文件,description是包的简短的描述信息,keywords是一个数组,里面是搜索的关键字,license是开源许可协议,npm默认使用ISC协议。
4、在index.js中定义格式化时间的方法:
// 定义格式化时间的函数 function dateFormat(dateStr) { const dt = new Date(dateStr) const y = dt.getFullYear() const m = padZero(dt.getMonth() + 1) const d = padZero(dt.getDate()) const hh = padZero(dt.getHours()) const mm = padZero(dt.getMinutes()) const ss = padZero(dt.getSeconds()) return `${y}-${m}-${d} ${hh}:${mm}:${ss}` } // 定义一个补零的函数 function padZero(n) { return n > 9 ? n : '0' + n } module.exports = { dateFormat }
使用时:导入模块直接使用即可
多个功能可以进行模块化拆分,在index.js中导入对应的模块,并向外共享即可。
// 这是包的入口文件index.js const date = require('./src/dateFormat') const escape = require('./src/htmlEscape') // 向外暴露需要的成员 module.exports = { ...date, ...escape }
接下来就是编写包的说明文档,包根目录中的 README.md 文件,是包的使用说明文档。
我们所创建的这个包的 README.md 文档中,会包含以下 6 项内容: 安装方式、导入方式、格式化时间、转义 HTML 中的特殊字符、还原 HTML 中的特殊字符、开源协议等。自己写清楚即可。
例如:
然后,就可以发布这个包了。
在发布包时,需要先注册npm账号。
在npm官网,点击 sign up 按钮,进入注册用户界面。
注册后,打开终端执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功。(在运行 npm login 命令之前,必须先把下包的服务器地址切换为 npm 的官方服务器。)
将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。
运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包。(npm unpublish 命令只能删除 72 小时以内发布的包 ,npm unpublish 删除的包,在 24 小时内不允许重复发布)
到这儿发布包和删除包就结束啦!