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
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
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
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下紀錄的是生產環境會
Thumbnail
React開發有兩種方式,一種是使用CDN方式include react的官方lib,然後使用babel來將JSX編譯成瀏覽器看得懂的javascript。 但是在react中還會使用到sass, scss等等,還需要額外編譯成css瀏覽器才看得懂。 而webpack的誕生,就是為了解決上述的問題,
Thumbnail
React開發有兩種方式,一種是使用CDN方式include react的官方lib,然後使用babel來將JSX編譯成瀏覽器看得懂的javascript。 但是在react中還會使用到sass, scss等等,還需要額外編譯成css瀏覽器才看得懂。 而webpack的誕生,就是為了解決上述的問題,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News