Open lvillacin opened 3 years ago
I just got this working in my own project so wanted to share how I did it. PR #32 helped .It's not far off what the docs here tell you: https://tailwindcss.com/docs/installation
First off run the following command to install tailwindcss, postcss, postcss-loader and autoprefixer;
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest postcss-loader@latest
Then add the following file named postcss.config.js
in your project root:
// postcss.config.js
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
}
}
Run the following to generate your tailwind config file:
npx tailwindcss init
Then create a tailwind.css
file somewhere in your project and link to it from whatever pages
you want to use it. I put it here assets/styles/tailwind.css
and then references it from the index.jsx
of the pages I wanted to use it on (See below).
// src/assets/styles/tailwind.css
@tailwind base;
@tailwind components;
@tailwind utilities;
// src/pages/Options/index.jsx
import React from 'react';
import { render } from 'react-dom';
import '../../assets/styles/tailwind.css';
import Options from './Options';
render(
<Options title={'settings'} />,
window.document.querySelector('#app-container')
);
if (module.hot) module.hot.accept();
Then the last step it to tell webpack to load it in your webpack.config.js
file. You can see an example in #32 but basically just add the as a loader around line 72
// webpack.config.js
// rest of loaders above
{
loader: 'postcss-loader',
},
@wprk You saved me a few hours to figure this out, for sure. Thanks!
@wprk Thanks mate this helped me bunch
@wprk had to install postcss-loader@latest
too, thanks for the guide!
Hi, what about purging css? as I see it isn't purging and I don't get the reason
@wprk Thank for your useful code!
I had to add the following content
array into tailwind.config.js
to get it working:
module.exports = {
content: [
'./src/pages/**/*.{js,ts,jsx,tsx}',
'./src/containers/**/*.{js,ts,jsx,tsx}',
],
theme: {
extend: {},
},
plugins: [],
};
@Getitdan i didn't manage it to work with tailwind 3, mind to share the solution? Thanks
ERROR in ./src/assets/styles/tailwind.css (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/postcss-loader/dist/cjs.js!./src/assets/styles/tailwind.css)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Function rgb is missing argument $green.
on line 466 of src/assets/styles/tailwind.css
>> color: rgb(220 38 38 / var(--tw-text-opacity));
---------^
SassError: SassError: Function rgb is missing argument $green.
Edit: Fixed by adding postcss-loader before sass loader.
rules: [
{
// look for .css or .scss files
test: /\.(css|scss)$/,
// in the `src` directory
use: [
{
loader: 'style-loader',
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
},
{
loader: 'sass-loader',
options: {
sourceMap: true,
},
},
],
},
I recommend adding Purge CSS for removing unused classes. This is my postcss.config.js file:
const tailwindcss = require('tailwindcss');
const postcssPresetEnv = require('postcss-preset-env');
const purgecss = require('@fullhuman/postcss-purgecss');
module.exports = {
plugins: [
postcssPresetEnv(),
tailwindcss('./tailwind.config.js'),
// I suggest turning it off in development mode.
purgecss({
content: ['./src/*.html', './src/*.jsx', './src/*.js'],
}),
],
};
@wprk Can we use tailwind css in content script using post css?
Anyone tried using TailwindCss with this boilerplate? If you have, can you provide some guidance on how to implement this? Thank. you very much!