Complete Guide to Installing Tailwind CSS in Frameworks
A supplement to the official Tailwind CSS - Installation documentation. Please pay special attention to ensuring your modifications match your framework's directory structure and paths.
Example framework directory structure¶
MyProject
├── node_modules
├── assets
│ ├── css
│ │ └── app.css
│ └── js
│ └── app.js
├── public
│ ├── favicon.ico
│ ├── logo.png
│ ├── robots.txt
│ └── sitemap.xml
├── templates
│ ├── base.html
│ ├── components
│ │ ├── footer.html
│ │ └── nav.html
│ └── index.html
├── package-lock.json
├── package.json
├── vite.config.ts
Create package
File¶
Generate package-lock.json
and package.json
files. Skip this step if they already exist.
npm init -y
Install Tailwind CSS¶
npm install tailwindcss @tailwindcss/cli
Import Tailwind CSS¶
Edit <YourProject>/assets/css/app.css
@import "tailwindcss";
@source "../../templates";
Configure package.json
¶
Set type
to module
. Add this configuration if you don't have it.
"type": "module",
"scripts": {
"build": "vite build",
"dev": "vite",
},
Configure Vite Plugin¶
Edit vite.config.ts
file.
Notes:
- Make sure to modify the paths for
outDir
,input
, andoutput
to match your project structure emptyOutDir: false
: Prevents clearing your output directory duringnpm run
commands. Configure as needed
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
import { resolve } from 'path'
export default defineConfig({
plugins: [
tailwindcss(),
],
build: {
outDir: resolve(__dirname, 'public'),
emptyOutDir: false,
rollupOptions: {
input: {
'css/app': resolve(__dirname, 'assets/css/app.css'),
'js/app': resolve(__dirname, 'assets/js/app.js')
},
output: {
assetFileNames: '[name].[ext]',
entryFileNames: '[name].js'
},
}
}
})
Add Flowbite¶
Install¶
npm install flowbite
Import Flowbite CSS¶
Edit <YourProject>/assets/css/app.css
...
@import "flowbite/src/themes/default";
@plugin "flowbite/plugin";
@source "../../node_modules/flowbite";
Import Flowbite JavaScript¶
Edit <YourProject>/assets/js/app.js
file.
import 'flowbite';
Add other package¶
Try the pluralize
package.
npm i pluralize
Edit <YourProject>/assets/js/app.js
file.
...
import pluralize from 'pluralize';
window.pluralize = pluralize;
After running npm run dev|build
, you can use functions like pluralize.singular()
directly in your templates.
Run¶
npm run dev
npm run build
After execution, public/css/app.css
and public/js/app.js
files will be generated. You can now include and load these files in your framework templates. 🎉
Tips¶
If you see error hints when opening TypeScript files in your editor, such as missing packages or naming issues, you can install the @types/node
package to resolve them. This ensures your development environment runs smoothly without any incorrect error notifications, making the development experience more enjoyable. 😄
npm install --save-dev @types/node