新手教学----手把手教你学会发一个包

要想写包

首先需要注册npm网站账号:

npmhttps://www.npmjs.com/进到npm网站,点击sign up按钮,进入注册用户界面

填写账号相关的信息: full Name, Public Email, Username, Password

点击Create an Account按钮, 注册账号

登录邮箱, 点击验证链接, 进行账号的验证

登录npm账号

npm账号注册完成后,在(命令提示符,git,Node.js)中执行 npm login命令,依次输入用户名,密码,邮箱后,即可登录成功

注意:在运行npm login命令之前,要先把下包的服务器切回npm的官方服务器,否则会失败,可用nrm ls查看(先要安装nrm,写下命令npm i nrm -g安装nrm,在通过nrm ls可以查看当前服务器,如果看不了,可用npm config get registry查看)

一个规范的包必须要具备以下几点:

1.包必须以单独的目录存在

2.包的目录下必须包含package.json这个包管理配置文件

3.package.json中必须包含name(名字), version(version),main(包的入口)这三个属性

首先我们要来准备好包的基础结构:

新建一个文件夹,作为根目录(注意:这个名字不能雷同,所以需要提前去npm查看有没有雷同的名字)

然后在根目录中,新建以下三个文件:

package.json(包的管理配置文件)(package.josn可以用命令写:npm init -y,在命令提示符,Git,Nods.js写,要注意路径)

index.js(包的入口文件)

README.md(包的说明文档)

接下来我们来初始化package.json配置文件

{
  "name": "flightloong-tools",
  "version": "1.0.0",
  "description": "提供格式化时间、HTMLEscape相关功能",
  "main": "index.js",
  "keywords": [
    "itcast",
    "itheima",
    "dateFormat",
    "escape"
  ],
  "license": "ISC"
}

仅供参考

如果是用npm init -y写的,这些都出来了,不需要手动写

初始化完后,可以在index.js写你想写的东西,如果想体验的,可参考这,这是定义格式化时间的方法

// 包的入口文件 index.js

// 定义格式化时间的函数
function dateFormat (dateStr) {
  const dt = new Date(dateStr)

  const y = padZero(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
}

仅供参考

我们接下来再来编写包的说明文档

README.md,会包含以下6项内容

安装方式

导入方式

格式化时间

转义HTML中的特殊字符

还原HTML中的特殊字符

开源协议

### 安装
​```
npm i flightloong-tools
​```

### 导入
​```js
const itheima = require('./flightloong-tools')
​```

### 格式化时间
​```js
// 调用 dateFormat 对时间进行格式化
const dtStr = itheima.dateFormat(new Date())
// 结果  2020-04-03 17:20:58
console.log(dtStr)
​```

### 转义 HTML 中的特殊字符
​```js
// 带转换的 HTML 字符串
const htmlStr = '<h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>'
// 调用 htmlEscape 方法进行转换
const str = itheima.htmlEscape(htmlStr)
// 转换的结果 &lt;h1 title=&quot;abc&quot;&gt;这是h1标签&lt;span&gt;123&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
console.log(str)
​```

### 还原 HTML 中的特殊字符
​```js
// 待还原的 HTML 字符串
const str2 = itheima.htmlUnEscape(str)
// 输出的结果 <h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>
console.log(str2)
​```

### 开源协议
ISC

仅供参考

写完就可以发布了

发布将终端切换到包的根目录上,运行npm publish命令,就可以将包发布到npm上

如果要删除的话可以运行npm unpublish 包的名字 --force命令,就可以从npm删除已发布的包

注意:

npm unpublish 命令只能删除 72 小时以内发布的包

npm unpublish 删除的包,在 24 小时内不允许重复发布

发布包的时候要慎重,尽量不要往 npm 上发布没有意义的包!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值