场景
@abmao/items是一个创建模版的工具,主要用来做纯 js 轮子,版本维护,推送 npm 包。原理很简单,就是git clone && npm run init
git clone xxx [name]
安装&使用
npm i @abmao/items -g
items create
? Please select a template (Use arrow keys)
❯ item
monorepo
cd monorepo
有两套模板,分别是:
- item: MultiRepo 项目
- monorepo: 下面使用 @abmao/pkgs 方式管理的 monorepo 项目。
monorepo 项目
目录结构
特点
- @abmao/pkgs + pnpm 🗂️
- build: webpack5 📦
- test: vitest 🔬
- typescript 👽
- eslint、husky 🔦
- commit: commitizen 📤
- docs: vitepress
命令
{
"scripts": {
// 项目初始化,items 安装的项目会自动触发
"init": "pnpm i && npm run prepare",
// 用来代替 git commit 提交
"commit": "cz",
// 升级 & 发布版本
"release": "esno ./scripts/release",
// 构建
"build": "pkgs run build",
// 测试
"test": "pkgs run test",
// 测试并统计覆盖率
"test:cov": "pkgs run test:cov",
"lint-staged": "lint-staged",
"lint": "eslint --ext=js,ts,json,md,tsx .",
"lint:fix": "eslint --fix --ext=js,ts,json,md,tsx .",
// 本地运行文档网站
"docs:dev": "vitepress dev docs",
// 构建文档网站
"docs:build": "vitepress build docs",
// 运行文档网站
"docs:serve": "vitepress serve docs",
"prepare": "husky install"
},
}
item 项目
跟 monorepo 目录结构几乎一样,理念和用法一致