【发布时间】:2019-06-29 16:34:49
【问题描述】:
我有用于构建项目的 webpack,我想将特定文件夹中的所有图像添加到我的项目文件夹中。图像路径可能是动态的。
我怎么理解,如果我使用 js 作为入口点,我可能会添加仅在 js 中导入的图像。所以我需要在那个js中添加动态导入?
这是我的项目结构:
project
--dist -output folder
--files -folder with files
--userFolder
--appFolder
--logoFolder
--screenshotsFolder
--src
--View -entry folder
--main.js
--index.hbs
我的 webpack 配置
module.exports = (urlPath: string) => {
return {
mode: 'production',
entry: path.join(__dirname, 'src/View/main.js'),
output: {
path: path.join(__dirname, `dist/${urlPath}`),
publicPath: './',
filename: 'js/bundle.js',
},
module: {
rules: [
{
test: /\.hbs$/,
loader: 'handlebars-loader',
},
{
test: /\.css$/i,
use: [
{
loader: MiniCssExtractPlugin.loader,
},
'css-loader',
],
},
{
test: /\.(png|jpe?g|gif)$/,
use: [
{
context: path.resolve(__dirname, `files/${urlPath}/appLogo`),
loader: 'file-loader',
},
],
},
{
test: /\.(eot|ttf|woff|woff2|svg|png|gif|jpe?g)$/,
loader: require.resolve('file-loader'),
options: {
name: '[name].[ext]?[hash]',
outputPath: 'assets/',
},
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: 'css/style.css',
allChunks: false,
}),
new OptimizeCssAssetsPlugin(),
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
inject: true,
hash: true,
minify: {
collapseWhitespace: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true,
},
templateParameters: formData,
template: 'src/View/index.hbs',
})
],
};
};
【问题讨论】:
标签: webpack webpack-dev-server webpack-4 webpack-file-loader