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
    }
}




相关文章
|
1月前
|
前端开发 JavaScript Linux
|
1月前
|
JSON JavaScript 前端开发
Webpack详解(二)
Webpack详解
119 0
|
6月前
|
JavaScript 前端开发
webpack
webpack
43 0
webpack
|
1月前
|
前端开发 JavaScript 测试技术
对Webpack的理解
对Webpack的理解
28 0
|
10月前
|
缓存 前端开发 JavaScript
浅谈webpack
浅谈webpack
90 0
|
JavaScript 前端开发
从了解到使用webpack
Webpack本质上是一种前端资源编译,打包工具
74 0
|
前端开发 JavaScript
关于 Webpack 的介绍,什么是 Webpack?
Webpack 是一款现代化的前端构建工具,它可以将你的项目中的多个 JavaScript 模块打包成一个或多个 bundle 文件,同时还可以处理各种类型的静态资源,比如 CSS、图片等等。 Webpack 最初是由 Tobias Koppers 开发的,目前已经成为了前端开发中使用最广泛的构建工具之一。
124 0
|
缓存 算法
webpack的chunkFilename详细说明
webpack的chunkFilename详细说明
209 0
|
缓存 JavaScript 前端开发
Webpack
本质上,*webpack* 是一个现代 JavaScript 应用程序的*静态模块打包器(module bundler)*。当 webpack 处理应用程序时,它会递归地构建一个*依赖关系图(dependency graph)*,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 *bundle*。
Webpack
|
JSON JavaScript 前端开发
你可以看懂的webpack5知识(上)
你可以看懂的webpack5知识