Vite React + Tailwind 4.0 + prettier-plugin-tailwindcss 安裝

更新 發佈閱讀 9 分鐘
最近工作上可能要用 React + Tailwind 了,剛好正巧遇到 React 19 和 Tailwind 4.0 剛推出,尤其是 Tailwind 做了大改版,對我這樣剛好是這兩項技術的新手小白來說,還沒有更多文章可以參考,光是安裝也是摸索了一陣子。以下以 Vite 6 + React 18.3 + Tailwind 4.0 + prettier-plugin-tailwindcss 0.6.11 安裝做記錄:

▍ 為什麼不是直接安裝 React 19

React 19 發布於 2024 年 12 月,但直到現在 2025 年 1 月底,還是有使用 create-react-app 安裝出錯的問題。

根據 網友解法 都是退回 18,或是用 Vite 安裝 React 18,所以這篇文章才會用這個框架組合。

▍ 安裝 Vite React + Tailwind

  1. 安裝 Vite
npm create vite@latest
  1. 安裝 Tailwind 4.0
npm install tailwindcss @tailwindcss/vite
  1. 開啟 vite.config.ts,加入以下內容
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [
tailwindcss(),
... 你的其他 plugin
],
})
  1. 配置 CSS
    依據 Tailwind 4.0 的更新說明,原本需要透過 tailwind.config.js 配置 css,但現在可以直接透過 css 檔案 @import 就可以使用了。所以我們可以打開 App.css,在最上方加入 tailwindcss,之後如果要設定 @theme 也是直接加在 App.css 中。
/* App.css*/
@import 'tailwindcss';
  1. 撰寫測試
    開啟 App.jsx 寫一個簡單的 button 試試看。
// App.jsx
function App() {
return (
<>
<button className="bg-black hover:bg-amber-800 text-2xl font-extralight hover:font-extrabold text-yellow-400 p-3">
button
</button>
</>
)
}
  1. 預覽結果
    終端機輸入以下指令,開啟 Vite 專案預覽,應該能夠看到下圖
npm run dev
raw-image


▍ 如何客製樣式

Tailwind 3 的版本,是將擴充和覆蓋樣式寫在 tailwind.config.js,範例如下:

module.exports = {
content: ['./src/**/*.{html,js}'],
theme: {
colors: {
// 覆蓋樣式
'gray-light': '#ffffff'
},
extend: {
// 擴充樣式
colors: {
'gray-light': '#d3dce6'
}
}
},
plugins: []
}

Tailwind 4 則是可以全部寫在 App.css 中,不再區分 colors 或 extend colors;變數記得加入前綴 --變數前綴規定):

// App.css
@import 'tailwindcss';
@import './customTheme.css'; /* 引入自訂的 css*/

@theme {
/* 如果自訂 css 與 App.css 中有相同名稱樣式,會後覆蓋前*/
--color-test: var(--color-orange-100); /* 新增顏色樣式,可以填入色彩代碼,也可以使用既有變數*/
--color-blue-800:purple; /* 覆蓋顏色樣式,這裡把藍色改紫色*/
--font-playwrite:"Playwrite IN", serif; /* 增加字體樣式(index.html 還是要記得引入字體呦)*/
}

這樣我們就可以使用這些自訂變數了

<button className="font-playwrite bg-test p-3 text-2xl font-extralight text-yellow-400 hover:bg-blue-800 hover:font-extrabold">
button
</button>
raw-image

另外,如果在 @theme 中使用以下程式碼,代表停用所有預設樣式,並僅使用自訂值,除了 @theme 裡面寫的都會失效。

@theme {
--*: initial; /* 停用所有預設樣式,並僅使用自訂值,除了 @theme 裡面寫的都會失效*/
}


▍ 安裝 prettier-plugin-tailwindcss

prettier-plugin-tailwindcss 是一個可以對樣式排序的外掛,這對於專案 DOM 樣式維護上是很方便的功能。讓我們安裝它!

  1. 專案資料夾中的終端機輸入指令安裝
npm install -D prettier prettier-plugin-tailwindcss
  1. 安裝 Prettier - Code formatter,一定必須安裝 Code formatter 才有辦法運作。
  2. 配置設定檔
    在專案根目錄下,新增一個名為 .prettierrc 的設定檔
// .prettierrc
{
"plugins": ["prettier-plugin-tailwindcss"]
}

或者也可以改新增 prettier.config.js 檔案,使用 module 方式設定,教學影片:https://www.youtube.com/shorts/ZFFsOx5twSw?si=NEm4em-iEyFJw4lw

  1. 使用 Prettier 作為 Formatter
    我們回到 prettier-plugin-tailwindcss 的 GitHub 文件,下方有提到上面設定檔可以加入的各種規則,其中一項關於 tailwindConfig。因為 Tailwind 4.0 已經不需要透過 tailwind.config.js 使用 CSS,所以這項設定可以直接略過囉!
    接著確保我們的 Formatter 是使用 Prettier。
raw-image
  1. 測試結果
    隨意寫點什麼試試看,如果你沒有設定 Format:on Save(存檔自動格式化)的話,可以使用快捷 Shift + Alt + F 啟動 format,就可以看到效果了。從下圖可以看到 Hover 效果全部被移動到最後面。
raw-image


2025-07-16 更新

  • prettier-plugin-tailwindcss 提出:「使用 Tailwind CSS v4 時,您必須指定 CSS 檔案入口點,其中包含主題、自訂實用程式和其他 Tailwind 設定選項。為此,請使用tailwindStylesheetPrettier 配置中的相應選項。」意思指如果你有自訂tailwind.config.js(例如改顏色、字級)就需要加入這行語法。
// .prettierrc
{
"plugins": ["prettier-plugin-tailwindcss"],
"tailwindStylesheet": "./src/App.css" // 新增這行,路徑視專案修改
}
  • 如果前面設定都無法讓 prettier-plugin-tailwindcss 運作,你又是使用 VScode 編輯,可以試試看在專案根目錄找到 .vscode/setting.json(或自己建立)。在 json 中加入以下語法,就可以請「當前專案」用指定方式進行格式化囉!
"editor.defaultFormatter": "esbenp.prettier-vscode"


▍ 延伸閱讀


留言
avatar-img
留言分享你的想法!
avatar-img
Ann Chou的沙龍
19會員
32內容數
從藝術領域轉職到前端工程師,喜歡書寫學習歷程和技術文件,掌握經驗與隨時提取的感覺很好。
Ann Chou的沙龍的其他內容
2025/04/27
這篇文章說明如何在 Windows 電腦上設定 Android 推播通知,包含使用 Expo 串接 Firebase 和 Azure 的步驟。文章涵蓋 Firebase 和 Azure 的設定,以及 Android Studio 和 JDK 的配置。
2025/04/27
這篇文章說明如何在 Windows 電腦上設定 Android 推播通知,包含使用 Expo 串接 Firebase 和 Azure 的步驟。文章涵蓋 Firebase 和 Azure 的設定,以及 Android Studio 和 JDK 的配置。
2025/04/20
介紹在 React Native / Expo 中實作推播通知的方式,並比較使用 Expo Notifications 與整合 Firebase Cloud Messaging(FCM)或 Azure Notification Hubs 的差異。
2025/04/20
介紹在 React Native / Expo 中實作推播通知的方式,並比較使用 Expo Notifications 與整合 Firebase Cloud Messaging(FCM)或 Azure Notification Hubs 的差異。
2025/04/19
本篇主題是 React Native 小介紹。 因為先前在測試 Ionic + PWA 開發,對相機功能實在太失望,結果現在我開始用 React Native / Expo 了。 如果還不清楚 Ionic 和 Reac Native 能做不同種類的 App,可以先閱讀 App 種類概述 。
2025/04/19
本篇主題是 React Native 小介紹。 因為先前在測試 Ionic + PWA 開發,對相機功能實在太失望,結果現在我開始用 React Native / Expo 了。 如果還不清楚 Ionic 和 Reac Native 能做不同種類的 App,可以先閱讀 App 種類概述 。
看更多
你可能也想看
Thumbnail
先從react開始: 其實市面上有許多前端框架像是react,angular,vue... 至於為什麼我會選擇react…
Thumbnail
先從react開始: 其實市面上有許多前端框架像是react,angular,vue... 至於為什麼我會選擇react…
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
本文介紹如何使用Vite建立前端開發初始檔案,並加入Tailwindcss的教學。透過指令和配置檔,讓你能快速建立個人專案的開發環境,並學習如何加入全域的Tailwindcss樣式。還有影片教學、資源連結和更多相關教學文章等,幫助你進一步學習。
Thumbnail
建立React專案-React白話文運動:前一篇文章介紹了三個名詞,分別是:Babel 是什麼?Webpack 是什麼?Npm 是什麼?這一篇則是會手把手建立 React 專案,包含:建置環境、建立 React 專案、啟動專案、如何使用 React 擴充套件。這邊也包含:官方 CRA 建置環境以及自
Thumbnail
建立React專案-React白話文運動:前一篇文章介紹了三個名詞,分別是:Babel 是什麼?Webpack 是什麼?Npm 是什麼?這一篇則是會手把手建立 React 專案,包含:建置環境、建立 React 專案、啟動專案、如何使用 React 擴充套件。這邊也包含:官方 CRA 建置環境以及自
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
Vue3 學習筆記,專案建立與基礎響應式篇
Thumbnail
當然指令不是背的,所以第一步就是要打開Tailwind CSS的官網。 Installation - Tailwind CSS 主要的方式有CLI跟CDN,這裡使用的方式前者。 Install Tailwind CSS npm install -D tailwindcss npx tai
Thumbnail
當然指令不是背的,所以第一步就是要打開Tailwind CSS的官網。 Installation - Tailwind CSS 主要的方式有CLI跟CDN,這裡使用的方式前者。 Install Tailwind CSS npm install -D tailwindcss npx tai
Thumbnail
前言 Vue 在過去的一兩年內快速發展,寫法也一直改變,我在過去一年多也更改了兩次寫法,在這個系列中我將以最新的 composition api + typescript 寫法進行教學。 javascript 有兩大痛點,一個是異步問題,另一個是弱型別。要渲染畫面一定要多線程同時異步處理,不然真的一
Thumbnail
前言 Vue 在過去的一兩年內快速發展,寫法也一直改變,我在過去一年多也更改了兩次寫法,在這個系列中我將以最新的 composition api + typescript 寫法進行教學。 javascript 有兩大痛點,一個是異步問題,另一個是弱型別。要渲染畫面一定要多線程同時異步處理,不然真的一
Thumbnail
接續上一篇,這邊要來寫一個React hello world app,最後安裝webpack-dev-server來提升開發效率。 使用npm安裝react, react-dom: $ npm install react react-dom --save dependencies下紀錄的是生產環境會
Thumbnail
接續上一篇,這邊要來寫一個React hello world app,最後安裝webpack-dev-server來提升開發效率。 使用npm安裝react, react-dom: $ npm install react react-dom --save dependencies下紀錄的是生產環境會
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News