Webpack 文件加载器输出 [目标模块] [英] Webpack file-loader outputs [object Module]
本文介绍了Webpack 文件加载器输出 [目标模块]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用带有 HtmlWebpackPlugin
、html-loader
和 file-loader
的 webpack.我有一个简单的项目结构,其中我不使用框架,而只使用打字稿.因此,我将 HTML 代码直接写入 index.html
.我也在 HtmlWebpackPlugin
中使用这个 HTML 文件作为我的模板.
与所有网站一样,我需要在我的资产文件夹中放置一个引用 PNG 的图像.file-loader
应该正确加载文件,将新文件名放在 src
标签内,但事实并非如此.相反,作为src
标签的值,我有[object Module]
.我假设 file-loader
发出一些对象,当它的 .toString()
方法运行时它是这样表示的.但是,我可以看到 file-loader
已成功处理文件并以新名称发送到输出路径.我没有错误.这是我的 webpack 配置和 index.html
.
const projectRoot = path.resolve(__dirname, '..');{条目:path.resolve(projectRoot, 'src', 'app.ts'),模式:'生产',输出: {路径:path.resolve(projectRoot, 'dist'),文件名:'app.bundle.js'},解决: {扩展名:['.ts', '.js']},模块: {规则: [{测试:/.html$/i,使用:'html-loader'},{测试:/.(eot|ttf|woff|woff2|svg|png)$/i,使用:'文件加载器'},{测试:/.scss$/i,利用: [{加载器:MiniCssExtractPlugin.loader,选项: {hmr:假的}},{加载器:'css-加载器',选项: {源地图:假}},{loader: 'sass-loader',选项: {源地图:假}}]},{排除:/node_modules/,测试:/.ts$/,使用:'ts-loader'}]},插件: [新的 CleanWebpackPlugin(),新的 HtmlWebpackPlugin({模板:path.resolve(projectRoot, 'src', 'index.html')}),新的 MiniCssExtractPlugin({文件名: '[name].[hash].css',chunkFilename: '[id].[hash].css',忽略顺序:假})]};
index.html:
<html lang="zh-cn"><头><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title></title>头部><body class="dark"><标题><nav class="导航"><div class="left"><img src="assets/logo.png" class="logo"><!-- 这个标志作为[对象模块]输出-->
<div class="right">
</nav></标题>