本系列目录如下:
- 项目初始化搭建+代码规范集成
- 组件库多产物编译及文档编写
- turborepo 集成
turborepo
就是专门做构建用的,对于 monorepo
项目来说更适合,构建缓存等可以大大优化开发体验。如果只是基本使用,甚至可以把它当作一个大号的 npm-run-all2
,这个基本功能会用就行,大部分也用不到很深入的。
初始集成 turborepo
pnpm i turbo -D -w
根目录新建 turbo.json
{"$schema": "https://turbo.build/schema.json","globalDependencies": ["tsconfig.json"],"tasks": {"build": {"dependsOn": ["^build"],"outputs": [".next/**", "storybook-static/**", "!.next/cache/**", "dist/**", "es/**", "lib/**"]},"dev": {"cache": false,"persistent": true},"lint": {"dependsOn": ["^lint"]},"clean": {"cache": false}}
}
直接看 tasks
对象的键即可,比如 build
dev
等,简单理解的话就是执行 turbo run build
或者 turbo run dev
时,会匹配所有 workspace 包的 package.json
中的 build
dev
命令,并执行它们。
然后检查目前在 workspace 里的 build
dev
命令
// components"scripts": {"dev": "gulp watch","build": "npm run clean:build && npm run build:types && gulp && npm run build:dist","clean": "rimraf .turbo node_modules",// ...},// storybook"scripts": {"dev": "vite","build": "tsc -b && vite build","clean": "rimraf .turbo node_modules storybook-static"// ...},
在根目录的 package.json
中添加统一执行命令
"scripts": {// ..."turbo:dev": "turbo run dev","turbo:build": "turbo run build","turbo:clean": "turbo run clean","turbo:lint": "turbo lint",// ...},
- 执行
pnpm turbo:dev
一键启动所有的dev
命令,甚至不需要关心启动顺序 pnpm turbo:clean
一键删除 workspace 下的相关目录文件