前言
当发现一些能力可以用在不同的项目上,这个时候可以考虑把它抽离封装成底层能力,发布成 npm 包。
流程
package.json
- name 包名
- version 包版本号
- main 统一入口
{
"name": "xxx",
"version": "1.0.0",
"main": "index.js"
}
入口
外部能够使用的东西是入口文件导出的能力。
module.exports = {
start: () => {}
}
路径
包里面引用的路径要区分好是包本身里面的文件还是外部项目的文件。
- process.cwd()
- __dirname
公共和业务抽离
将业务功能抽离到项目里面;公共能力放入包中,包再适当向外暴露能力,以支持业务功能运行。
路径别名
公共模块可以通过工程化手段给予路径别名让项目中可以直接引用到这些模块。
拓展能力
包里面一些配置支持自动合并外部项目的配置。
README
每个包建议写 README.md,介绍这个包的作用和基本使用。
发布
查看当前 npm 包注册地址
npm config get registry
设置包注册地址
npm config set registry
npm 登录
npm login
检查一下登录名
npm whoami
发布为公共仓库
npm publish --access public