前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >create-react-app + ts 项目工程规范

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

作者头像
踏浪
发布2021-06-10 00:19:01
1.6K0
发布2021-06-10 00:19:01
举报
文章被收录于专栏:踏浪的文章踏浪的文章

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

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

代码语言:javascript
复制
npx create-react-app demo --template typescript

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

import 相对路径问题

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

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

代码语言:javascript
复制
{
  "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 中添加

代码语言:javascript
复制
"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 中添加

代码语言:javascript
复制
"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
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

代码语言:javascript
复制
yarn add json-server -D

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

然后执行

代码语言:javascript
复制
json-server --watch __json_server_mock__/db.json

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • import 相对路径问题
  • 代码规范与格式化
  • 彩蛋
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档