Skip to content

项目架构 ​

包管理器 ​

使用 pnpm 作为包管理器,速度快,并且解决幽灵依赖的问题。

pnpm-workspace.yaml 文件是 pnpm 工作区(workspace)的配置文件。pnpm 是一个快速、节省磁盘空间的包管理器,支持 monorepo(单体仓库)项目结构。

yaml
packages:
  - 'packages/*'

这个配置文件的作用是告诉 pnpm,所有位于 packages 目录下的子目录都应该被视为工作区的一部分。

使用工作区的优势

  1. 共享依赖: 所有包的依赖会被安装在根目录下的 node_modules 中,而不是每个包的 node_modules 中,从而节省磁盘空间。

  2. 统一管理:

  • 你可以一次性安装所有包的依赖:pnpm install
  • 通过工作区配置,你可以统一管理多个包的依赖、脚本和版本:pnpm run build --filter "packages/*"

定义开发规范 ​

代码规范 ​

  • ESLint 设置
    • 安装 ESLint:pnpm add -D -w eslint
    • 初始化 ESLint 配置:npx eslint --init
    • 注意这里安装到根目录需要加上 -w

代码格式化 ​

  • Prettier 设置
    • 安装 Prettier:pnpm add -D -w prettier
    • 创建 .prettierrc 配置文件
    • 安装 ESLint 和 Prettier 的集成插件:pnpm add -D -w eslint-config-prettier eslint-plugin-prettier

commit 规范 ​

  • 使用 husky 和 lint-staged 实现
    • 安装 commitlint:pnpm add -D -w @commitlint/cli @commitlint/config-conventional
    • 创建 commitlint.config.js 文件
    • 安装 husky 用于 Git hooks:pnpm add -D -w husky
    • 设置 pre-commit 和 commit-msg hooks

添加 ignore ​

  • 设置 .gitignore 文件,确保敏感信息不被提交
  • 考虑使用 .npmignore 文件(如果需要发布到 npm)

更新日志以及文档(按需) ​

  • 创建 CHANGELOG.md 文件,记录版本更新信息
  • 创建 README.md 文件,包含项目描述、安装和使用说明
  • 考虑使用文档生成工具(如 JSDoc, TypeDoc 等)