node中如何开发属于自己的包

首先回顾一下什么叫包?

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 小时内不允许重复发布)

到这儿发布包和删除包就结束啦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白芸哆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值