Я использую плагин HtmlWebpackPlugin
для анализа html-шаблона и создания его в каталоге build
.Я обнаружил, что он не выбирает тег img src
, определенный в шаблоне, что означает, что изображение, на которое есть ссылка, не копируется в каталог build
.
Я также пытался использовать require
в шаблоне, но он также не работает: <img src="<%= require('../images/image.png') %>" />
Я знаю, что могу использовать copy-webpack-plugin
для копирования каталога изображений в build
но я ищу лучший способ сделать это.
Ниже моя webpack4
конфигурация.
{ entry: { index: './odo' },
output:
{ filename: 'tbc_odo.js',
sourceMapFilename: 'tbc_odo.map',
path: './build',
publicPath: '/' },
module: { rules: [
[
{
test: /\.js?$/,
exclude: /(node_modules)/,
loader: 'babel-loader'
},
{
test: /\.(s*)css$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'sass-loader']
})
},
{
test: /\.(png|jp(e*)g|svg)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8000, // Convert images < 8kb to base64 strings
name: 'images/[hash]-[name].[ext]'
}
}
]
},
{
test: /\.html$/,
use: [
{
loader: 'html-loader'
}
]
}
]
},
plugins:
[
new webpack.IgnorePlugin(/locale/, /moment$/),
new webpack.LoaderOptionsPlugin({ debug: true }),
new webpack.DefinePlugin({
CONFIG: JSON.stringify(config)
}),
new HtmlWebpackPlugin({
filename: 'odo/index.html',
template: 'odo/index.html',
inject: 'body',
sdk: '/tbc_sdk.js'
})
],
mode: 'development',
devtool: 'inline-source-map' }