任何人都可以帮助我进行 webpack 配置吗?

用户3760959

我正在尝试为我的项目配置 webpack(我正在 youtube https://www.youtube.com/watch?v=mnS_1lolc44上学习 colt steele webpack 课程)。但是我无法正确配置我的图像,我尝试了所有方法并在互联网上到处寻找,但无法弄清楚如何解决。下面是我的目录结构和代码片段。

我有三个 webpack 配置文件:webpack.common.js、webpack.dev.js 和 webpack.prod.js

webpack.common.js

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: "./src/index.js",
    plugins : [new HtmlWebpackPlugin({
        template: "./src/template.html"
    })],
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: ["style-loader","css-loader","sass-loader"]
            },
            {
                test: /\.(png|jpe?g|gif|svg)$/i,
                use: [
                  {
                    loader: "file-loader",
                    options: {
                      name: "[name].[hash].[ext]",
                      publicPath: '/',
                      outputPath: 'img',
                      esModule: false
                    }
                  }
                ]
              },
              {
                test: /\.html$/,
                use: ["html-loader"]
            }              
        ]
    }
}

webpack.dev.js

const path = require('path');
const common = require('./webpack.common');
const {merge} = require('webpack-merge');

module.exports = merge(common, {
    mode: "development",
    output: {
        filename: "main.js",
        path: path.resolve(__dirname, "dist")
    }
})

webpack.prod.js

const path = require('path');
const common = require('./webpack.common');
const {merge} = require('webpack-merge');

module.exports = merge(common, {
    mode: "production",
    output: {
        filename: "main.[contenthash].js",
        path: path.resolve(__dirname, "dist")
    }
})

我的 src 目录结构如下:

在此处输入图片说明

我正在通过src/index.js文件导入我所有的 sass 和其他 js 文件,如下所示:

在此处输入图片说明

我将 src/template.html 文件中的图像称为

在此处输入图片说明

所有图像都存在于 src/img 文件夹中,并且 template.html 文件通过“./img/”路径调用图像。

当我运行 npm build 命令时,我将 dist 文件夹创建为:

在此处输入图片说明

在这里,让我感到困惑的一件事是为什么图像会生成两次。一个在 dist/img 文件夹中,具有正确的名称 + 哈希值 + 扩展名,一个在 dist 文件夹中。此外,我生成的 index.html 文件正在调用 dist 文件夹中存在的图像(这是不正确的,为什么生成我不确定)而不是调用 dist/img 文件夹中存在的图像?

在此处输入图片说明

Above screenshot is of the generated dist/index.html file. Here, the image path is for the images generated in the dist folder which is not the correct one.

And even I try to open these generated images (present in dist folder) in VS code, I will get the error message "An error occured while loading the image". While images present in dist/img folder, shows me the correct image on selecting any one.

Could anyone please help me in understanding here, why webpack is generating two sets of images (one is correct and another one is incorrect) and why generated dist/index.html file is looking for the path of incorrect images not the correct one.

GitHub Repo : [email protected]:Guru4741/Sedna.git

Thanks

Grzegorz T.

您正在使用 webpack 5 并且有很大的变化。你在代码中有很多错误,但你自己找到了;) 再说一句。这个“node_modules”不提交给github :)

好的,让我们来看看为什么图片没有出现。删除“file-loader”库,然后删除这部分代码:

{
  test: /\.(png|jpe?g|gif|svg)$/i,
  use: [{
    loader: "file-loader",
    options: {
      name: "[name].[hash].[ext]",
      publicPath: '/',
      outputPath: 'img',
      esModule: false
    }
  }]
},

替换为:

{
  test: /\.(png|jpe?g|gif|svg)$/i,
  type: 'asset/resource',
  generator: {
    filename: 'img/[name][ext]',
  },
}

您可以访问此页面资产模块了解有关资产的更多信息

还有一点,你看的课程是2019年相当老的了,基础在哪儿都一样,但是新的webpack 5有很多变化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

任何人都可以帮助我进行以下 SQL 查询吗?

任何人都可以帮助我在 jQuery 中进行修剪吗?

任何人都可以帮助我通过 CSS 对齐图标吗?

任何人都可以帮助我理解下面代码中的问题吗?

任何人都可以帮助我解决 Hibernate 和 JSF 的这个缺点吗?

任何人都可以通过PIPELINED函数帮助我吗?

任何人都可以帮助我们解决这些 Xcode 错误吗?

任何人都可以帮助我在颤振中对齐布局吗?

我希望 div 是透明的,但不是 div 内的按钮。任何人都可以帮助我吗?

什么是 P2P 和网状网络?任何人都可以帮助我吗?

任何人都可以在C ++中使用if语句和字符串来帮助我吗?

任何人都可以帮助我使这个 java 运行没有错误吗?

任何人都可以帮助我在 php 的 foreach 循环中使用 json 数据吗?

任何人都可以帮助我修复响应式 HTML 手风琴吗?

任何人都可以帮助我将 html 按钮边框限制为特定长度吗?

任何人都可以帮助解析HCL吗?

你好。我想降低 Java 脚本中按钮到顶部的滚动速度。任何人都可以帮助我吗?

当我使用CMake编译程序捕获异常时,出现编译错误。任何人都可以帮助我吗?

我想知道如何正确使用 wait_for 命令。任何人都可以帮助我吗?它的不和谐.py

当有多个本地化属性时,任何人都可以帮助我解决主动事件 API 中本地化属性数组的结构吗?

任何人都可以帮助我解决在 Xcode 上使用 swift 从 Firebase 检索数据的问题吗?“源文件中的编辑器占位符”

任何人都可以帮助我解决 Ubuntu 18.04 的 GNOME 停靠栏图标丢失问题的 TigerVNC xstartup 脚本吗?

任何人都可以帮助 webapps 中的缓存过程吗?

任何人都可以帮助 Type 'Observable<Detail>' 缺少以下问题吗?

任何人都可以帮助解决这些haskell练习吗?

任何人都可以更正此代码吗?

任何人都可以理解connStateInterface吗?

任何人都可以处理吗?

任何人都可以回答这个问题吗?