Я использую этот плагин для встраивания всего CSS в окончательный файл HTML.
Это останавливает обновление приложения в режиме разработки. Если я редактирую CSS, сборка завершается нормально, но стили не меняются и веб-страница не обновляется. Только перезапуск сервера помогает увидеть обновленный CSS.
Есть ли лучший способ встроить CSS в файл HTML? Я пытался сделать это с помощью загрузчика стилей, как показано здесь: связь. Но нормально не получилось.
Мой веб-пакет:
const webpack = require('webpack');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const HtmlWebPackPlugin = require("html-webpack-plugin");
const HTMLInlineCSSWebpackPlugin = require("html-inline-css-webpack-plugin").default;
const InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin');
const CircularDependencyPlugin = require('circular-dependency-plugin');
const htmlWebpackPlugin = new HtmlWebPackPlugin({
template: "./src/index.html",
filename: "./index.html",
inlineSource: '.(js|css)$',
inject: 'body',
});
module.exports = {
entry: ['./src/index.tsx', './src/main.css'],
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
fallback: {
"path": require.resolve("path-browserify"),
"os": require.resolve("os-browserify/browser"),
"url": require.resolve("url"),
"tty": require.resolve("tty-browserify"),
"minimatch": require.resolve("minimatch"),
"process": require.resolve("process")
},
},
module: {
rules: [{
test: /\.tsx?$/,
exclude: /node_modules|dist|\.js$|\.d\.ts$/,
loader: 'ts-loader',
options: {
configFile: 'tsconfig.json',
}
},
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader"
]
}
],
},
output: {
filename: 'bundle.js',
publicPath: '',
},
plugins: [
new CircularDependencyPlugin({
exclude: /a\.js|node_modules/,
include: /src/,
failOnError: true,
allowAsyncCycles: false,
cwd: process.cwd(),
}),
new webpack.ProvidePlugin({
process: 'process',
}),
new MiniCssExtractPlugin({
filename: "main.css",
chunkFilename: "mainc.css"
}),
htmlWebpackPlugin,
new HTMLInlineCSSWebpackPlugin(),
new InlineChunkHtmlPlugin(HtmlWebPackPlugin, [/runtime~.+[.]tsx/]),
]
};
Когда я исключаю новый HTMLInlineCSSWebpackPlugin(),, обновление работает нормально.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто сделайте небольшое изменение. Передать конфигурацию конструктору HTMLInlineCSSWebpackPlugin() для фильтра.
new HTMLInlineCSSWebpackPlugin({
filter: (filename) => false
})
Если вы используете Typescript, попробуйте.
new HTMLInlineCSSWebpackPlugin({
filter: (filename: string) => false
})
Еще раз спасибо, вы спасаете меня второй раз подряд :) Я погуглил этот вопрос и просмотрел пакет NPM, чтобы найти правильный конфиг. Не нашел. Где вы нашли эту конкретную настройку?