我正试图建立一个现代香草网络启动器与Webpack。
当我添加webpack-html-loader
和html-loader
时,我卡住了。下面是发生的情况...
1.当我在条目index.html
文件中使用img
标记时,src
属性如下所示(./imgs/image.png
),则dist
文件夹中的src
属性将替换为[object Module]
。但是,当我删除uri
之前的点时(./imgs/image.png
到/imgs/image.png
),dist
文件夹中的src
输出与src
的输出完全相同。这没有引用我想要包含的图像。
1.由于webpack输出的src
值与源代码完全相同,我尝试使用uri
作为输出文件夹中的图像,就像/dist/img/image.png
一样。但这并不是一次很好的经历。我想在src
文件夹中使用一个uri
到我的图像,并让webpack在构建时用dist
替换它。这可能吗?
下面是npm run build
之后的文件结构
- dist
- imgs
- image.png
- index.html
- main.js
- node_modules
- src
- index.html
- imgs
- image.png
- package.json
- package-lock.json
- webpack.config.js
这是我的webpack.config.js
const HTMLWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const path = require("path");
module.exports = {
module: {
rules: [
{
test: /\.(html)$/,
use: [
{
loader: "html-loader",
options: {
minimize: false
}
}
]
},
{
test: /\.(png|jpe?g)$/,
use: [
{
loader: "file-loader",
options: {
outputPath: "imgs",
publicPath: "imgs",
name: "[name].[ext]"
}
}
]
}
]
},
plugins: [
new HTMLWebpackPlugin({
template: path.resolve(__dirname, "src/index.html")
}),
new CleanWebpackPlugin()
]
};
我把它买回来了here
非常感谢您抽出时间
更新(2020年1月2日)
有人在评论中指出了一个解决问题的方法。(当我在webpack中使用file-loader和html-loader时。图像的src属性会像'[object Module]')
解决方案是在file-loader
规则中将esModules
对象设置为false
,如下所示
{
test: /\.(png|jpe?g)$/,
use: [
{
loader: "file-loader",
options: {
// Here!!!
esModule: false,
outputPath: "images",
publicPath: "images",
name: "[name].[ext]"
}
}
]
}
3条答案
按热度按时间vmdwslir1#
请看这篇文章:
When i using file-loader and html-loader in webpack. The src attr of image gonna be like '[object Module]'
pzfprimi2#
您可以通过'default'属性解决[object module]错误:默认值
brqmpdu13#
您可以导入要导入内容的默认值。例如:而不是这样做:
执行此操作