create-react-app + ts 项目工程规范

乐观更新:在后台请求回数据之前前台就进行数据更新,保证用户体验

使用 create-react-app 创建 TS 项目,并进行工程规范

1
npx create-react-app demo --template typescript

npx命令的功能是可以不用本地安装包而直接使用npm上面的包

import 相对路径问题

在传统的 JS 项目中,需要在 webpack 的 alias 中进行配置。

但是在 TS 项目中,直接在项目跟目录的 tsconfig.json 中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"compilerOptions": {
"baseUrl": "./src", // 添加的这一行,指如果不是npm包,那么绝对路径将会从项目src目录下面找
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": [
"src"
]
}

代码规范与格式化

  • prettier

    yarn add --dev --exact prettier

    Pre-commit Hook: 自动化矫正 npx mrm lint-staged

  • eslint

    yarn add eslint-config-prettier -D 安装这个包,避免 ESlint 与prettier 冲突,并且在 package.josn 中添加

    1
    2
    3
    4
    5
    6
    7
    "eslintConfig": {
    "extends": [
    "react-app",
    "react-app/jest",
    "prettier" // 添加
    ]
    },
  • git 提交规范

    工具 https://github.com/conventional-changelog/commitlint

    yarn add @commitlint/{config-conventional,cli} -D

    echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

    这个看版本,老版本是在 package.json 中添加

    1
    2
    3
    4
    5
    "husky": {
    "hooks": {
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
    }

    新版本是直接 npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

    https://pic-go-1253455210.cos.ap-chengdu.myqcloud.com/blog/%E9%A1%B9%E7%9B%AE%20husky%20%E6%96%B0%E7%89%88%E9%85%8D%E7%BD%AE.png

    commitlint 的具体规则可以前往上面地址查看

彩蛋

使用 json-server 进行数据 mock

1
yarn add json-server -D

在根目录下面创建一个名为 __json_server_mock_ 的文件夹,并创建一个名为 db 的json文件。

然后执行

1
json-server --watch __json_server_mock__/db.json

如果你是在根目录下面新建的 db.json ,那么就不要文件夹路径即可。但是为了项目管理,创建一个文件夹,同时前面后面使用 __ 开头结束表示这是项目的辅助目录,而不是主要的。

文章作者: 踏浪
文章链接: https://www.lyt007.cn/技术/create-react-app-ts-项目工程规范.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 平凡的生活,不平凡的人生
支付宝
微信打赏