This is my Webpack configs for scss/css files.
...
{
test: /\.s?css$/,
use: [
'style-loader',
{ loader: 'css-loader', options: { importLoaders: 2 } },
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: loader => [
require('postcss-import')({ root: loader.resourcePath }),
require('cssnano')(),
require('postcss-cssnext')(),
]
}
},
'sass-loader',
]
}
...
The problem is that when I use cssnext functions like gray(100), the output CSS file has an empty value where the function was placed. I would like to know what I did wrong here.
i.e.
background-color: gray(100); outputs to background-color: ;
I'm new to postcss so I don't really know how it works or how to configure it properly as of yet.
For your exact problem, the
cssnextfunctions, you must putcssnanoafterpostcss-cssnext, like below:BUT I don't know, why did you use
sass-loader? when you havepostcssin your project.Actually
PostCSScan do all jobs likesasseven better, it is up to you for syntax style, I suggest seeTHIS REPO, it has complete configuration ofPostCSSonWebpack, also in this repo, theSCSSsyntax is used.For clearness I write a part of configuration below:
Even I use
*.pcssinstead of*.scss,*.sassor*.css, it is just for consistency and no different.The
PostCSSconfiguration is in separated file, it is:Absolutely
cssnextworks well, I usedcolor()function and it works well.