1 前言
2 包
2.1 什么是包
Node.js 中的第三方模块,又叫做包
从 https://www.npmjs.com/ 网站上搜索自己所需要的包
从 https://registry.npmjs.org/ 服务器上下载自己需要的包
2.2 规范的包结构
- 必须以单独的目录存在
- 顶级目录下必须包含 package.json 这个包管理配置文件
- package.json 中必须包含 name (包名)、 version (版本号)、 main (入口文件)这三个属性
3 新增包
- 新建文件夹 itheima-test
- 新建 package.json
itheima-test 文件夹下新建 package.json{
"name": "itheima-test", // 名称自定义
"version": "1.0.0",
"main": "index.js",
"type": "module",
"description": "提供了格式化时间等功能",
"keywords": ["dateFormat"],
"license": "ISC"
} - 新建 README.md
itheima-test 文件下新建 README.md
## 安装
npm install itheima-test
## 导入方式
import format from 'itheima-test'
## 格式化时间
const dtStr = format.dateFormat(new Date) // 2022-12-18 16:45:34
## 开源协议
ISC
- 新建 index.js
itheima-test 文件夹下新建 index.js
// 这是包的入口文件
import format from "./src/dateFormat.js";
export default {
...format
}
- 新建 dateFormat.js
itheima-test 文件夹下新建 src 文件夹, src 文件夹下新建 dateFormat.js
const padZero = (n) => {
return n < 10 ? `0${n}` : n
}
// 定义时间格式化方法
const 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}`
}
export default {
padZero,
dateFormat
}
4 发布包
若没有 npm 账号,需要先访问 https://registry.npmjs.org/ 注册一个
// 登录 npm
npm login
// 发布包
npm publish
// 删除包
npm unpublish 包名 --force