要想写包
首先需要注册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 </span></h1>'
// 调用 htmlEscape 方法进行转换
const str = itheima.htmlEscape(htmlStr)
// 转换的结果 <h1 title="abc">这是h1标签<span>123&nbsp;</span></h1>
console.log(str)
```
### 还原 HTML 中的特殊字符
```js
// 待还原的 HTML 字符串
const str2 = itheima.htmlUnEscape(str)
// 输出的结果 <h1 title="abc">这是h1标签<span>123 </span></h1>
console.log(str2)
```
### 开源协议
ISC
仅供参考
写完就可以发布了
发布将终端切换到包的根目录上,运行npm publish命令,就可以将包发布到npm上
如果要删除的话可以运行npm unpublish 包的名字 --force命令,就可以从npm删除已发布的包
注意:
npm unpublish 命令只能删除 72 小时以内发布的包
npm unpublish 删除的包,在 24 小时内不允许重复发布
发布包的时候要慎重,尽量不要往 npm
上发布没有意义的包!