将Webpack与postcss-loader结合使用以观察导入的css文件时遇到了一些麻烦.它们在第一次运行时被处理,但是当我修改这些文件时,webpack不会重新编译.
例如.
我有我的主css文件,我导入所有的css模块:
...
/* Base imports */
@import "base/base-imports";
...
在基础导入中,为了示例,我为身体应用了一种颜色:
body {
background: tomato;
}
我现在将背景设置为另一种颜色,以调试是否重新加载css文件,但不是.
这是我的webpack配置:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin')
var autoprefixer = require('autoprefixer');
var precss = require('precss');
var fontMagician = require('postcss-font-magician');
var atImport = require('postcss-import');
module.exports = {
entry: [
'./src/index.js'
],
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js',
},
module: {
loaders: [
{
test: /\.css$/,
loader: "style-loader!css-loader!postcss-loader"
}
],
},
postcss: function(webpack) {
return [
autoprefixer({ browsers: ['last 2 versions'] }),
precss,
fontMagician,
atImport({
path: './src/styles/*.css',
addDependencyTo: webpack
}),
];
},
plugins: [
new HtmlWebpackPlugin({
title: 'Custom template',
template: 'src/index.html', // Load a custom template
inject: 'body' // Inject all scripts into the body
})
],
devtool: 'source-map',
devServer: {
contentBase: './dist',
hot: true
},
}
解决方法:
好的,
这个问题有两个错误,所以解决方法是:
>在press之前做atImport,谢谢@Kreozot.
>参考确切的css文件名.我的意思是:@import“base / _base-imports”而不是@import“base / base-imports”如果文件名为“_base-imports”.它没有像sass partial那样解决.