npm 包管理规范
为了方便管理和维护越来越多的 npm 公用包,以及良好的生态环境,特制定此规范
对于库类型的项目,一般是发布到 npm 供业务方使用,对于此类项目需要注意以下几点:
做好单元测试
做好 Babel 之类的浏览器兼容,确保浏览器能正常加载
添加
.npmignore、.gitignore,不要将相关的文件传到 npm添加
README.md,确保通过文档能正常运行项目或者了解项目package.json内需要提供正确的字段,以确保如vite之类的 esm 打包工具正常使用,参考连接,字段如下:json{ "name": "lib-name", "version": "1.0.0", "main": "dist/index.js", "module": "dist/es/index.js" }
目录结构
bash
package-name
├── src
│ └── index.js # 代码入口
├── dist # 编译过的文件
│ ├── es
│ │ └── index.js # esm入口
│ └── index.js # commonjs 入口
├── tests # 测试
├── README.md # 自述文件
├── CHANGELOG.md # 更新日志
└── package.jsonJSON 模版
json
{
"name": "package-name",
"description": "some description",
"version": "1.0.0",
"main": "dist/index.js",
"module": "dist/es/index.js",
"scripts": {},
"repository": {
"type": "git",
"url": "https://xxxx"
},
"keywords": [],
"author": "",
"bugs": {
"url": "https://xxxxx"
},
"homepage": "https://xxxxx"
}name
必须使用小写,多词之间使用 连字符 - 间隔
并且必须满足以下条件:
- 唯一的
- 非已有包名的简写
description
包的简单描述
version
包版本号,默认为 1.0.0
遵循语义话规范
main
定义了 npm 包的入口文件,browser 环境和 node 环境均可使用
全局包需要在 index.js 的第一行添加 #!/usr/bin/env node 否则 Windows 系统中可能不会以 NodeJS 去执行入口
module
定义 npm 包的 ESM 规范的入口文件,browser 环境和 node 环境均可使用
scripts
快捷的脚本地址
repository
包的仓库地址
keywords
包的关键字,其他开发者在 npmjs.org 查看你的包时以标签形式展示
author & maintainers
包作者,多个作者需要放 maintainers 字段下
dependencies
生产环境需要的依赖包
提示:仅限配置生产环境需要的依赖, 开发&测试环境需要的依赖包配置到 devDependencies
devDependencies
测试环境用到的依赖包