将Webpack与postcss-loader结合使用以观察导入的css文件时遇到了一些麻烦。它们在第一次运行时被处理,但是当我修改这些文件时,webpack不会重新编译。
E.g。
我有我的主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
},
}
答案 0 :(得分:5)
好,
这个问题有两个错误,所以解决方案是:
"base/_base-imports"
而不是@import "base/base-imports"
,如果文件名是"_base-imports"
。它没有像sass partial那样被解决。