webpack4X 遇到的问题总结

简介: 最近在系统重新的学习下webpack,但是最新的是5x,目前常用的还是 4x,而且准备过段时间搞 Vite所以也就不准备学5了。在重学webpack4的过程遇到一些问题,仅此做个笔记吧。

1.前言


最近在系统重新的学习下webpack,但是最新的是5x,目前常用的还是 4x,而且准备过段时间搞 Vite所以也就不准备学5了。在重学webpack4的过程遇到一些问题,仅此做个笔记吧。


2.版本


学习过程发现很多问题都和版本不匹配有很大关系

所以先把版本列出来 ,相信我 能避免很多坑,不信你不按版本试试 😜😜😜😜


"webpack": "^4.46.0",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.2",
    "mini-css-extract-plugin": "^1.6.0",
    "css-loader": "^5.2.4",
    "file-loader": "^6.2.0",
    "html-loader": "^1.3.2",
    "html-webpack-plugin": "^3.2.0",
    "less": "^2.7.3",
    "less-loader": "^4.1.0",
    "style-loader": "^2.0.0",
    "url-loader": "^4.1.1"



3.输出的配置


如果用 node的path模块也遇到些小问题索性换了个写法


output: {
      filename: "js/built.js",
      path: __dirname +"/build"
  },



4.简洁的webpackconfig.js配置



const HtmlWebpackPlugin = require("html-webpack-plugin")
module.exports = {
    entry: "./src/js/index.js",
    output: {
        filename: "js/built.js",
        path: __dirname +"/build"
    },
    module: {
        rules: [
            {
                test: /\.less$/,
                use: [
                    "style-loader",
                    "css-loader",
                    "less-loader"
                ]
            },
            {
                test: /\.css$/,
                use: [
                    // "style-loader",
                    // 提取js中的css成单独的文件
                    MiniCssExtractPlugin.loader,
                    "css-loader"
                  ]
            },
            {
                test: /\.(jpg|png|gif)$/,
                loader: "url-loader",
                options: {
                    limit: 8 * 1024,
                    name: "[name]_[hash:10].[ext]",
                    outputPath:"imgs"
                }
            },
            {
                test: /\.html$/,
                loader:"html-loader",
            },
            {
                exclude: /\.(less|css|js|html|jpg|png|gif)$/,
                loader: "file-loader",
                options: {
                    name: "[name]_[hash:10].[ext]",
                    outputPath:"media"
                }
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template:"./src/index.html"
        }),
       new MiniCssExtractPlugin({
            // 重命名
            filename:"css/built.css"
        })
    ],
    mode: "development",
    devServer: {
        contentBase: __dirname + "/build",
        compress: true,
        port: 3000,
        open: true
    }
}




相关文章
|
21天前
|
移动开发 JSON JavaScript
一文带你了解和使用webpack(2024年11月)
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端已有两年半的时间,目前正努力向全栈开发迈进。如果你在我的博客中有所收获,欢迎关注我,我会持续更新更多优质内容。你的支持是我最大的动力!🎉🎉🎉
25 1
一文带你了解和使用webpack(2024年11月)
|
7月前
|
前端开发 JavaScript
webpack使用
webpack使用
|
7月前
|
前端开发 JavaScript Linux
|
7月前
|
JSON JavaScript 前端开发
Webpack详解(二)
Webpack详解
189 0
|
7月前
|
前端开发 JavaScript 测试技术
对Webpack的理解
对Webpack的理解
48 0
|
JSON 缓存 前端开发
webpack相关详细讲解。
webpack相关详细讲解。
|
缓存 前端开发 JavaScript
浅谈webpack
浅谈webpack
105 0
|
JavaScript 前端开发
从了解到使用webpack
Webpack本质上是一种前端资源编译,打包工具
108 0
|
前端开发 JavaScript
关于 Webpack 的介绍,什么是 Webpack?
Webpack 是一款现代化的前端构建工具,它可以将你的项目中的多个 JavaScript 模块打包成一个或多个 bundle 文件,同时还可以处理各种类型的静态资源,比如 CSS、图片等等。 Webpack 最初是由 Tobias Koppers 开发的,目前已经成为了前端开发中使用最广泛的构建工具之一。
156 0
|
缓存 JavaScript 前端开发
Webpack
本质上,*webpack* 是一个现代 JavaScript 应用程序的*静态模块打包器(module bundler)*。当 webpack 处理应用程序时,它会递归地构建一个*依赖关系图(dependency graph)*,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 *bundle*。
Webpack