Banner 1
Banner 2
hero

Phạm Văn Tú

4518 thành viên

  1. Trang chủ /
  2. Reactjs & Nextjs /
  3. Setup dự án React Typescript

Setup dự án React Typescript

Hello 5 chăm ae 🤣. Bài viết này mình viết ra để lâu lâu tạo dự án thì vào copy cho nhanh á mà hehe. Một phần có gì ae tham khảo cách setup 1 dự án React Typescript như thế nào nhé

1️⃣ Đầu tiên đương nhiên mình phải create react app rồi

yarn create react-app name_project --template typescript

2️⃣ Tiếp theo mình cài Prettier để format code và Eslint để quản lý tiêu chuẩn code cũng như giúp các member trong team thống nhất quy chuẩn lúc dev luôn.  yarn add -D prettier eslint-plugin-prettier eslint-config-prettier. À đừng quên setup editor vscode của mình Default Formatter => Chọn Prettier và Format On Save => true để tiện lúc code nhé

3️⃣ Thêm scripts vào package.json để check và sửa lỗi của eslint và prettier

{
  "lint": "eslint --ext js,jsx,ts,tsx src/",
  "lint:fix": "eslint --fix --ext js,jsx,ts,tsx src/",
  "prettier": "prettier --check \"src/ ** /(*.jsx|*.js|*.tsx|*ts|*.css|*.scss)\"",
  "prettier:fix": "prettier --write \"src/ ** /(*.jsx|*.js|*.tsx|*ts|*.css|*.scss)\""
}

Lúc này bạn chỉ cần chạy – yarn lint để kiểm tra lỗi eslint – yarn lint:fix để fix lỗi liên quan eslint (đôi lúc có những lỗi ae phải tự fix bằng tay nha) – yarn prettier để kiểm tra lỗi prettier format – yarn prettier:fix để tự fix lỗi prettier format

4️⃣ Tạo file .prettierrc để chia sẻ setting prettier giữa các editor. Các bạn có thể tạo ở trang prettier này cũng được nhé

{
  "arrowParens": "always",
  "semi": false,
  "trailingComma": "none",
  "tabWidth": 2,
  "endOfLine": "auto",
  "useTabs": false,
  "singleQuote": true,
  "printWidth": 80,
  "jsxSingleQuote": true
}

5️⃣ Tạo file .eslintrc để setting eslint

{
  "extends": ["react-app", "prettier"],
  "plugins": ["react", "prettier"],
  "rules": {
    "prettier/prettier": [
      "warn",
      {
        "arrowParens": "always",
        "semi": false,
        "trailingComma": "none",
        "tabWidth": 2,
        "endOfLine": "auto",
        "useTabs": false,
        "singleQuote": true,
        "printWidth": 80,
        "jsxSingleQuote": true
      }
    ]
  }
}

6️⃣ Tạo file .editorconfig để chia sẻ một số setting giữa các editor với nhau cho đồng bộ

[*]
indent_style = space
indent_size = 2

7️⃣ À hiện tại Tailwindcss cũng khá trend và dự án hiện tại trên công ty mình cũng dùng nữa nên mình viết sẵn lệnh cài luôn đỡ mất công qua doc 😁

yarn add -D tailwindcss postcss autoprefixer

- Tiếp theo mình chạy npx tailwindcss init để tạo ra file tailwind config 
và edit content trong file lại thành: ["./src/ ** /*.{js, jsx, ts,tsx}"] 
có thể thêm hoặc xóa các option cho phù hợp dự án ae nhé

- Và đừng quên import tailwind vào file css của mình nhé
@tailwind base;
@tailwind components;
@tailwind utilities;

- Nếu ae muốn sort các class của tailwindcss cho dễ nhìn thì
yarn add -D prettier-plugin-tailwindcss
hero