反応スターターのワークフローを構築していて、scss ファイルに変更を加えたときにブラウザーを自動リロードしたいと考えています。
現在、index.js ファイル (エントリ ポイントとして設定) を変更すると、webpack がホット リロードされます。ただし、scss ファイルで scss コードを変更または追加すると、コンパイルされますが、css はどこにも出力されず、ブラウザーのリロードがトリガーされません。
私はwebpackが初めてなので、ここでいくつかの洞察をいただければ幸いです。
これが私のwebpack.config.jsです
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: ['./src/js/index.js', './src/scss/style.scss'],
output: {
path: path.join(__dirname, 'dist'),
filename: 'js/index_bundle.js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.scss$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].css',
outputPath: 'css/'
}
},
{
loader: 'extract-loader'
},
{
loader: 'css-loader'
},
{
loader: 'postcss-loader'
},
{
loader: 'sass-loader'
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html'
})
]
}
私の index.js エントリ ポイント ファイル
import React from 'react';
import ReactDOM from 'react-dom';
import App from '../components/App';
ReactDOM.render(
<App/>,
document.getElementById('App')
);
そして私のアプリコンポーネント
import React, {Component} from 'react';
import '../../dist/css/style.css';
class App extends Component {
render() {
return (
<div>
<p>Test</p>
</div>
)
}
}
export default App;