Create React App + TypeScript 项目中 Tailwind CSS 工具类不生效求助
React + TypeScript 项目中 Tailwind CSS 样式不生效问题
已按照Tailwind官方的Create React App配置指南搭建项目并完成Tailwind配置,执行npm run start后项目能正常启动,但页面里的Tailwind工具类样式完全没效果。以下是项目的代码与配置文件,以及当前无样式的效果截图:
App.tsx
import React from 'react'; import logo from './logo.svg'; import './App.css'; function App() { return ( <div className="items-center justify-center"> <h1 className="text-3xl font-bold underline"> Testing </h1> </div> ); } export default App;
index.tsx
import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement ); root.render( <React.StrictMode> <App /> </React.StrictMode> ); reportWebVitals();
index.css
@tailwind base; @tailwind components; @tailwind utilities;
postcss.config.js
module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, }
tailwind.config.js
/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/**/*.{js, jsx, ts, tsx}", ], theme: { extend: {}, }, plugins: [], }
tsconfig.json
{ "compilerOptions": { "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" ] }
package.json
{ "name": "mortgage-calc", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", "@types/node": "^16.11.43", "@types/react": "^18.0.15", "@types/react-dom": "^18.0.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "^5.0.1", "typescript": "^4.7.4", "web-vitals": "^2.1.4" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "autoprefixer": "^10.4.7", "postcss": "^8.4.14", "tailwindcss": "^3.1.5" } }
当前效果

解决方案
检查下来有两个核心问题导致样式失效:
修复tailwind.config.js的路径匹配问题
你的content配置中,文件扩展名之间多了空格:"./src/**/*.{js, jsx, ts, tsx}",空格会导致Tailwind无法正确识别文件路径。把空格删除,修改为:content: [ "./src/**/*.{js,jsx,ts,tsx}", ],清理干扰性默认样式
App.tsx中导入的./App.css是Create React App生成的默认样式文件,里面包含全局margin、字体等样式,虽然不会直接阻止Tailwind生效,但可能覆盖或干扰样式表现。如果不需要默认样式,直接删除App.css文件,同时删掉App.tsx里的import './App.css';语句。
修改完成后,重启npm run start,Tailwind工具类样式即可正常生效。
内容的提问来源于stack exchange,提问作者Mr. Hargrove
相关产品推荐
相关产品推荐

