项目架构
包管理器
使用 pnpm 作为包管理器,速度快,并且解决幽灵依赖的问题。
pnpm-workspace.yaml 文件是 pnpm 工作区(workspace)的配置文件。pnpm 是一个快速、节省磁盘空间的包管理器,支持 monorepo(单体仓库)项目结构。
yaml
packages:
- 'packages/*'这个配置文件的作用是告诉 pnpm,所有位于 packages 目录下的子目录都应该被视为工作区的一部分。
使用工作区的优势
共享依赖: 所有包的依赖会被安装在根目录下的
node_modules中,而不是每个包的node_modules中,从而节省磁盘空间。统一管理:
- 你可以一次性安装所有包的依赖:
pnpm install - 通过工作区配置,你可以统一管理多个包的依赖、脚本和版本:
pnpm run build --filter "packages/*"
定义开发规范
代码规范
- ESLint 设置
- 安装 ESLint:
pnpm add -D -w eslint - 初始化 ESLint 配置:
npx eslint --init - 注意这里安装到根目录需要加上
-w
- 安装 ESLint:
代码格式化
- Prettier 设置
- 安装 Prettier:
pnpm add -D -w prettier - 创建 .prettierrc 配置文件
- 安装 ESLint 和 Prettier 的集成插件:
pnpm add -D -w eslint-config-prettier eslint-plugin-prettier
- 安装 Prettier:
commit 规范
- 使用 husky 和 lint-staged 实现
- 安装 commitlint:
pnpm add -D -w @commitlint/cli @commitlint/config-conventional - 创建 commitlint.config.js 文件
- 安装 husky 用于 Git hooks:p
npm add -D -w husky - 设置 pre-commit 和 commit-msg hooks
- 安装 commitlint:
添加 ignore
- 设置
.gitignore文件,确保敏感信息不被提交 - 考虑使用
.npmignore文件(如果需要发布到 npm)
更新日志以及文档(按需)
- 创建 CHANGELOG.md 文件,记录版本更新信息
- 创建 README.md 文件,包含项目描述、安装和使用说明
- 考虑使用文档生成工具(如 JSDoc, TypeDoc 等)