Fix a PostCSS Webpack error ruleSet rules oneOf... etc etc
How to fix the error `ruleSet[1].rules[3].oneOf[8].use[2]!./styles/globals.css cannot find module`
Some students of my Bootcamp had a problem that I couldn’t replicate in any way.
Upon running npm run dev in a Next.js project, they had this error:
➜ rest-api git:(main) npm run dev
> [email protected] dev
> next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
info - Loaded env from /Users/flaviocopes/dev/bootcamp/rest-api/.env
wait - compiling...
error - ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[3].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[3].oneOf[8].use[2]!./styles/globals.css
Error: Cannot find module 'tailwindcss'
In the last line tailwindcss appears but also autoprefixer happened.
Or, this error too: Error: Your custom PostCSS configuration must export a plugins key.
Not a very helpful error!
After much debugging, the cause of the problem was discovered.
The project where the error appeared didn’t have Tailwind CSS installed, but during the weeks before, we used Tailwind.
What happened was this.
They had a postcss.config.js file in the parent folder. Or in another parent folder in their path, not just the direct parent. Maybe their home folder.
Something like this:
module.exports = {
plugins: {
autoprefixer: {},
},
}
Important: in the project that they’re now, there’s no PostCSS configured.
If you have PostCSS installed, there’s no problem. Only if you don’t have postcss.config.js in your current project root folder.
But the tooling of Next.js sees there’s a postcss.config.js file in the parent folder, and executes it.
Raising this error:
error - ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[3].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[3].oneOf[8].use[2]!./styles/globals.css download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing [email protected]. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.