项目结构化
项目规范检查
shell
pnpm install simple-git-hooks lint-staged -Djson
{
"scripts": {
"prepare": "npx simple-git-hooks" // simple-git-hooks 初始化才行保证 hook 正常执行
},
"devDependencies": {
"lint-staged": "^15.5.0", // 只针对 git commit 区的文件进行操作
"simple-git-hooks": "^2.13.0" // git hooks
},
"lint-staged": {
"package.json": ["prettier --write"],
"*.(md|html)": ["prettier --write"]
},
"simple-git-hooks": {
"pre-commit": "npx lint-staged",
"pre-push": "pnpm turbo run lint --filter=!@muliice/eslint-config"
}
}package.json experts 位置自定义
text
your-package/
├── src/
│ ├── xxx/
│ │ ├── index.ts
│ ├── yyy/
│ │ ├── index.ts
├── hooks/
│ ├── hook1/
│ │ ├── index.ts
│ ├── hook2/
│ │ ├── index.ts
├── package.json
├── tsconfig.json- 省略 src
import module from 'your-package/someModule'
import useHook from 'your-package/useSomeHook'
json
{
"name": "your-package",
"exports": {
// @your-package/src/some_module/index.ts => @your-package/some_module
"./*": "./src/*/index.ts",
// hooks 保持不变
"./hooks/*": "./hooks/*/index.ts"
},
"typesVersions": {
"*": {
"*": ["src/*/index.ts"],
"hooks/*": ["hooks/*/index.ts"]
}
}
}- 省略 src、hooks
如果要导入 src 下非 index.ts 文件,需要带上 src 目录,即完整路径
import module from 'your-package/someModule'
import config from 'your-package/src/someModule/config'
import useHook from 'your-package/hooks/useSomeHook'
json
{
"name": "your-package",
"exports": {
"./*": "./src/*/index.ts",
"./src/*": "./src/*",
"./hooks/*": "./hooks/*/index.ts"
},
"typesVersions": {
"*": {
"*": ["src/*/index.ts"],
"src/*": ["src/*"],
"hooks/*": ["hooks/*/index.ts"]
}
}
}