This module allows you to use css (+ optional [less, sass, modules]) all in one package. It uses the latest modules available css-loader, less-loader, sass-loader, postcss. Check out the sources, its dead simple.
Because I found it cumbersome to deal with the official packages from next-plugins to setup css + less + sass + modules. So I created this one. It has everything I need for my project, most projects, I believe.
npm install @webdeb/next-styles
// next.config.js
const withStyles = require('@webdeb/next-styles')
module.exports = withStyles({
less: true, // use .less files
sass: true, // use .scss files
modules: true, // style.(m|module).css & style.(m|module).scss for module files
lessLoaderOptions: {
javascriptEnabled: true,
},
sassLoaderOptions: {
sassOptions: {
includePaths: ["src/styles"], // @import 'variables'; # loads (src/styles/varialbes.scss), you got it..
},
},
cssLoaderOptions: {...},
postcssLoaderOptions: {...},
miniCssExtractOptions: {...} // ignoreOrder:true for https://github.com/webpack-contrib/mini-css-extract-plugin/issues/250#issuecomment-544898772
})
Hint: Look at the source of truth: withStyles.js
This project inherits a known next-css problem. https://github.com/zeit/next-plugins/issues/282
If your pages where you are importing css are not working, you are probably facing exactly this problem. The workaround is to load a css/scss file (can be even empty) into your _app.js.
import "../styles/global.scss"
export default function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />
}
~master
git clone https/ssh github link to your fork
)git checkout -b your/branch/name
)npm install
in your local clone of the repoCHANGELOG.md
and the README.md
file up to date, also modify package.json
version
as fit!)npm pack
in your local clone of the reponpm install --save path/to/local/repo/{version}.tgz
to test your locally changed code)Most of the code was taken from the official next-css
& next-sass
package.