Вот собственно то, что я сделал пока что
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const cssRegx = /\.css$/
const imgRegx = /\.(png|jpe?g|gif)$/i
const htmlRegx = /\.(html)$/
module.exports = {
context: path.resolve(__dirname, 'src'),
mode: 'development',
entry: {
main: './home/main.js',
sakura: './home/sakura.js'
},
output: {
filename: 'js/[name].[contenthash].js',
path: path.resolve(__dirname, 'dist')
},
plugins: [
new HtmlWebpackPlugin({
template: './index.html'
}),
new CleanWebpackPlugin(),
new MiniCssExtractPlugin({
filename: 'css/[name].[contenthash].css',
chunkFilename: 'css/[name].[contenthash].chunk.css'
})
],
module: {
rules: [
{
test: cssRegx,
use: [
'style-loader',
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: './dist',
minimize: true
}
},
'css-loader'
]
},
{
test: imgRegx,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'img',
}
},
],
}
]
}
}
Проблемы две:
1) Когда я билжу main.js, в котором есть импорты картинок, в html (который так же билдится), в теге остаются те же относительные пути что и были
2) Навигация содержит ссылки на другие файлы html, которые в других папках. Как можно их тоже сбилдить и так же менять ссылки в html на сбилженные? Вручную это делать - треш
dist
--css
--img
--js
src
--components
----biography
----contacts
----library
--home
--images
--index.html
--main.js