Когда вы добавляете стили в качестве entry, они оборачиваются в js скрипт, который просто вставляет эти стили на страницу, при загрузке.
Обычный кейс для создания отдельного css бандла:
// в вашем './src/app.js'
import './styles/main.sass';
// в конфиге вебпака все надо упростить
// entry
{
app: './src/app.js',
}
// module.rules
{
test: /\.sass$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader',
'sass-loader'
]
})
}
// plugins
new ExtractTextPlugin('styles/[name].css')
Название entry мы меняем, для читаемости, что бы не делать всякие bundle.bundle.js или bundle.min.js,
Ваши стили получат такое же имя, как и основной js файл - итого app.min.js и app.min.css
HtmlWebpackPlugin автоматически подтянет ссылки на эти файлы.