国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【實戰(zhàn)】 項目起航:項目初始化與配置 —— React17+React Hook+TS4 最佳實踐,仿 Jira 企業(yè)級項目(一)

這篇具有很好參考價值的文章主要介紹了【實戰(zhàn)】 項目起航:項目初始化與配置 —— React17+React Hook+TS4 最佳實踐,仿 Jira 企業(yè)級項目(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


學習內容來源:React + React Hook + TS 最佳實踐-慕課網


相對原教程,我在學習開始時(2023.03)采用的是當前最新版本:

版本
react & react-dom ^18.2.0
react-router & react-router-dom ^6.11.2
antd ^4.24.8
@commitlint/cli & @commitlint/config-conventional ^17.4.4
eslint-config-prettier ^8.6.0
husky ^8.0.3
lint-staged ^13.1.2
prettier 2.8.4
json-server 0.17.2
craco-less ^2.0.0
@craco/craco ^7.1.0
qs ^6.11.0
dayjs ^1.11.7
react-helmet ^6.1.0
@types/react-helmet ^6.1.6
react-query ^6.1.0
@welldone-software/why-did-you-render ^7.0.1
@emotion/react & @emotion/styled ^11.10.6

具體配置、操作和內容會有差異,“坑”也會有所不同。。。


一、項目起航:項目初始化與配置

1.項目初始化 —— create-react-app

npx create-react-app jira --template typescript
  • baseUrl 配置
{
  "compilerOptions": {
    "baseUrl": "./src",
    ...
  }
  ...
}

重新配置后,若是項目已啟動,則需要重啟才能生效

2.格式化 —— Prettier

  • 為確保所有項目參與人員統一格式化代碼,項目中引入 Prettier 依賴
npm install --save-dev --save-exact prettier

Prettier 中文網 · Prettier 是一個“有態(tài)度”的代碼格式化工具

  • 創(chuàng)建配置文件:.prettierrc.json(windows 的 powershell 輸入內容需要加引號)
echo {}> .prettierrc.json
  • 創(chuàng)建格式化黑名單文件:.prettierignore
# cmd
(echo # Ignore artifacts:& echo build& echo coverage)> .prettierignore
# bash
echo -e "# Ignore artifacts:\nbuild\ncoverage"> .prettierignore

prettierignore,powershell請新建文件后直接輸入以下內容:

# Ignore artifacts:
build
coverage
  • 為了使格式化操作在每次提交代碼時(pre-commit)自動執(zhí)行,需要安裝依賴:husky & lint-staged
npx mrm@2 lint-staged

執(zhí)行這行命令會同時安裝 husky 和 lint-stage,并自動配置 package.json: "prepare": "husky install" 生成 .husky/pre-commit.husky/_/husky.sh 文件,免除了手動配置

  • Pre-commit Hook · Prettier 中文網
  • 為避免 prettier 與項目原有 eslint 的沖突,還需要安裝依賴:eslint-config-prettier
npm install --save-dev eslint-config-prettier
  • 在 package.json 的 eslint 配置尾部添加 "prettier" (若有 eslintrc 單獨配置文件,同):
  ...
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest",
      "prettier"
    ]
  },
  ...

prettier 會覆蓋掉沖突的原有 eslint 規(guī)則

  • Prettier 和 ESLint 沖突解決方案 eslint-config-prettier eslint-plugin-prettier - 彭成剛 - 博客園

步驟完成后嘗試將正常代碼格式破壞(比如隨機刪去tsx文件的幾個換行),進行一次代碼提交,提交信息隨意嘗試,查看提交后代碼是否被格式化還原之前正常格式

tips:嘗試后記得撤回提交哦!

3.提交規(guī)范 —— commitlint

接下來規(guī)范 commit message:

npm install --save-dev @commitlint/config-conventional @commitlint/cli

生成 commitlint.config.js,并配置內容:

# cmd
echo module.exports = { extends: ['@commitlint/config-conventional'] }; > commitlint.config.js
# bash
echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
  • 激活 husky
npx husky install
  • 在 husky 中添加 hook —— commit-msg
# bash
npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'

windows 的 cmd 或 powershell 中會報錯,具體可參考:

  • 【已解決】npx husky add 執(zhí)行失敗

經過這一步后,代碼提交如果不規(guī)范就會提交失敗啦,結果日志如下:

> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file -
[34m→[39m No staged files match any configured task.
?   input: 我掐指一算,這次提交會報錯
?   subject may not be empty [subject-empty]
?   type may not be empty [type-empty]

?   found 2 problems, 0 warnings
?   Get help: https://github.com/conventional-changelog/commitlint/#what-is-commitlint

husky - commit-msg hook exited with code 1 (error)

具體提交規(guī)范可參考文章:

【筆記】項目優(yōu)化代碼提交規(guī)范 —— commitlint+husky

或者 commitlint 官網文檔和 github:

  • commitlint - Lint commit messages
  • conventional-changelog/commitlint: ?? Lint commit messagesdetails/129241273)

4.Mock —— json-server

一般開發(fā)過程中,前后端是并行的,這就意味著前端開發(fā)時是沒有接口調用的,這時就涉及到了 Mock 的問題,不同方案對比可參考:

【筆記】不同 Mock 方案的對比及選擇

這里選用 json-server

  • 安裝 json-server
npm i -g json-server
  • 創(chuàng)建數據源文件
mkdir __json_server_mock__
cd ./__json_server_mock__
# bash
touch db.json
# cmd
cd.>db.json
  • 在 package.json 中新增 scripts 配置:
  "scripts": {
    "json-server": "json-server __json_server_mock__/db.json -w -p 3001"
  },

項目啟動默認在 3000 端口,因此把 json-server 端口改為其他: 3001

命令行中輸入以下命令啟動 json-server:

npm run json-server

接下來可以自行嘗試 json-server 的妙用,可參考:

  • 【筆記】json-server實戰(zhàn)

一切就緒,可以開發(fā)啦!文章來源地址http://www.zghlxwxcb.cn/news/detail-499493.html

到了這里,關于【實戰(zhàn)】 項目起航:項目初始化與配置 —— React17+React Hook+TS4 最佳實踐,仿 Jira 企業(yè)級項目(一)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微信小程序項目初始化配置

    微信小程序項目初始化配置

    注:該文章用于記錄或學習交流 微信小程序項目初始化配置準備,包括項目創(chuàng)建,基礎路徑配置,組件庫安裝,接口請求封裝,部分實用組件封裝等 創(chuàng)建初始項目后,對項目文件結構重新梳理 注:目錄結構根據個人需求創(chuàng)建,assets和static文件夾的區(qū)別詳見 assets與static的區(qū)別

    2023年04月08日
    瀏覽(30)
  • React refers to UMD global, but the current file is a module vite初始化react項目

    React refers to UMD global, but the current file is a module vite初始化react項目

    初始化項目 在執(zhí)行完上面的命令后,npm 首先會自動下載create-vite這個第三方包,然后執(zhí)行這個包中的項目初始化邏輯。輸入項目名稱之后按下回車,此時需要選擇構建的前端框架: 選中react后們還有個選項,我們選擇typescript 切換到項目按照依賴后跑起來 ? React refers to UMD

    2024年02月09日
    瀏覽(25)
  • react-Native init初始化項目報錯”TypeError: cli.init is not a function“

    在react-native init appDemo 創(chuàng)建項目時,報錯TypeError: cli.init is not a function。 產生這個問題的原因是:使用這種方式創(chuàng)建工程,react-native版本是0.69 版本上不適用??梢詸z查下自己安裝的React-native的版本。 使用: npx react-native init Demo --version 0.68.2 即可。 解決方法不好用的話,那就

    2024年02月15日
    瀏覽(17)
  • 從零開始基于go-zero的go web項目實戰(zhàn)-01項目初始化

    從零開始基于go-zero的go web項目實戰(zhàn)-01項目初始化

    導語 Go 是 Google 開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言,go語言的特點: 語法簡潔 Go語言簡單易學,學習曲線平緩 代碼風格統一 執(zhí)行性能好 開發(fā)效率高 等等… 在Go語言中,有很多高性能的web框架:gin、beego、iris等。作為后起之秀,近年來

    2024年02月16日
    瀏覽(46)
  • 17 數組動態(tài)初始化

    17 數組動態(tài)初始化

    ? ? ? ? 動態(tài)初始化:初始化時只指定數組長度,由系統為數組分配初始值。 ????????格式:數據類型[] 數組名 = new 數據類型[數組長度] ? ? ? ? 實驗結果:? ?

    2024年02月16日
    瀏覽(40)
  • 【go零基礎】go-zero從零基礎學習到實戰(zhàn)教程 - 2項目初始化

    【go零基礎】go-zero從零基礎學習到實戰(zhàn)教程 - 2項目初始化

    到項目初始化過程了,這邊的項目設計完全按照作者自己的喜好來進行定義和設置的,所以各位完全可以按照自己的偏好自喜設置哈。 首先是創(chuàng)建一個工作文件夾哈。 別問為啥不直接quickstart,因為quickstart生成的api名字是greet,改起來很麻煩(頭禿)。 注1: go-zero-demo是我隨便

    2024年04月26日
    瀏覽(37)
  • 【vue3項目初始化配置】vue3 + element plus

    【vue3項目初始化配置】vue3 + element plus

    項目初始化是開發(fā)過程中很重要的一個環(huán)節(jié),本篇博客帶大家從零開始創(chuàng)建并初始化一個vue3項目,文章詳細介紹了每個步驟,希望能幫助剛接觸開發(fā)的小伙伴。 目錄 一.創(chuàng)建項目 二.安裝插件 ??編輯 ?編輯三.安裝依賴 ?編輯??編輯四.配置項目 配置vu.config.js文件 ?配置

    2024年01月18日
    瀏覽(23)
  • 『pyqt5 從0基礎開始項目實戰(zhàn)』06. 獲取選中多行table 重新初始化數據(保姆級圖文)

    『pyqt5 從0基礎開始項目實戰(zhàn)』06. 獲取選中多行table 重新初始化數據(保姆級圖文)

    歡迎關注 『pyqt5 從0基礎開始項目實戰(zhàn)』 專欄,持續(xù)更新中 歡迎關注 『pyqt5 從0基礎開始項目實戰(zhàn)』 專欄,持續(xù)更新中 請查閱上文獲取源碼,此處只列舉第三方庫 新增點擊事件 .clicked.connect 我們這里的處理也包括包括選中多行的情況 在主函數中給線程傳入需要的參數 獲取

    2023年04月16日
    瀏覽(45)
  • vite初始化vue3項目(配置自動格式化工具與git提交規(guī)范工具)

    vite初始化vue3項目(配置自動格式化工具與git提交規(guī)范工具)

    初始化項目 vite構建vue項目還是比較簡單的,簡單配置選擇一下就行了 初始化命令 初始化最新版本vue項目 2. 基本選項含義 Add TypeScript 是否添加TS ADD JSX是否支持JSX ADD Vue Router是否添加Vue Router路由管理工具 ADD Pinia 是否添加pinia(狀態(tài)管理工具) Add ESLinit 是否添加ESLint是否添加

    2024年02月12日
    瀏覽(61)
  • 17. C++ static、const 和 static const 類型成員變量聲明以及初始化

    1. C++ static、const 和 static const 類型成員變量聲明以及初始化 const 定義的常量在超出其作用域之后其空間會被釋放; static 定義的靜態(tài)常量在函數執(zhí)行后不會釋放其存儲空間; 1.2 static static 表示的是靜態(tài)的 類的靜態(tài)成員函數、靜態(tài)成員變量是和類相關的,而不是和類的具體對

    2024年01月18日
    瀏覽(53)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包