私はのCSSモジュールを動作させることはできますが、ホットリロードはできません。Webpack devサーバーとCSSモジュール
最初にロードされ、スタイルはそれが必要な方法表示されます。
しかし、それは壊れるcssファイルに変更を加えると、完全なリロードが必要とされた後:
を私は以下のようにCSSモジュールを使用しています:
webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const pack = {
entry: [
path.join(__dirname, 'src/app/index.js'),
],
output: {
path: path.join(__dirname, '/dist/'),
filename: '[name].js',
publicPath: '/',
},
plugins: [
new HtmlWebpackPlugin({
template: 'src/app/index.html',
inject: 'body',
filename: 'index.html',
}),
],
module: {
loaders: [
{
test: /\.css$/,
include: /src\/app/,
loaders: [
'style?sourceMap',
'css?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]',
],
},
{
test: /\.js?$/,
include: /src\/app/,
loader: 'babel',
},
{
test: /\.woff(2)?(\?[a-z0-9#=&.]+)?$/,
loader: 'url?limit=10000&mimetype=application/font-woff',
},
{
test: /\.(ttf|eot|svg)(\?[a-z0-9#=&.]+)?$/,
loader: 'file',
},
],
},
};
module.exports = pack;
webpack.development.config.js
const webpack = require('webpack');
const pack = require('./webpack.config');
pack.entry.unshift('react-hot-loader/patch');
pack.entry.unshift('webpack/hot/only-dev-server');
pack.entry.unshift('webpack-dev-server/client?http://localhost:3000');
pack.plugins.push(new webpack.HotModuleReplacementPlugin());
pack.plugins.push(new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development'),
}));
module.exports = pack;
私はそれがコンポーネントでフェッチしようとする、CSSクラスを気づいてきたようにまだ同じですが、各ファイルの変更/再読み込みのために新しいハッシュを生成すべきではありませんか?
ソースに 'module.accept()'ステートメントを追加しましたか? –
いいえ... pack.entry.unshift( 'webpack/hot/dev-server');を 'pack.entry.unshift( 'webpack/hot/dev-server')に' 。それはすべてをリフレッシュしますが、期待どおりにCSSを更新します。 –
これは、あなたがフルリフレッシュを得ている理由を説明するかもしれません。 –