Я вижу почти на каждом производственном веб-сайте, созданном в React (или почти во всех других фреймворках), что в HTML-сайт вставлены разделенные css и js-пакеты.
Я использую Webpack 4 с этой конфигурацией:
module.exports = {
entry: "./src/client/index.js",
output: {
path: outputPath,
filename: "[name].js"
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
}, {
test: /\.css$/,
use: ['style-loader', 'css-loader']
}, {
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
loader: 'url-loader?limit=100000'
}
]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
devServer: {
port: 3000,
open: true,
proxy: {
'/api': 'http://localhost:8080'
}
},
plugins: [
new CleanWebpackPlugin([outputPath]),
new HtmlWebPackPlugin({
template: "./public/index.html"
})
]
};
Но когда я создаю свой внешний интерфейс и обслуживаю его в Express, мои стили CSS помечаются <style></style>
и также включаются в файл main.js.
Как отделить CSS, JS и другие ресурсы друг от друга (bundle.css, bundle.js, img / image1.png и т. Д.) Вместо вставки CSS и преобразования изображений в формат base64?