Skip to content

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.json

JSON 模版

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

测试环境用到的依赖包