webpack初始

首先webpack是一个打包工具,我们写的项目中,打包很多都需要他的帮忙,我之前的话,不了解,一直看不懂这个文件是干嘛用的。所以学习一下webpack,方便以后优化,今天我来总结一下webpack的一些简单的知识点!

webpack的入口文件 index.js(如果需要改文件路径,也是可以的)

   1.运行指令:

    开发环境: webpack ./src/index.js -o ./build/main.js --mode=development

        webpack会以./src/index.js 为入口文件打包输出到 ./build/main.js文件

        整体打包环境是开发环境

    生产环境: webpack ./src/index.js -o ./build/main.js --mode=production

        webpack会以./src/index.js 为入口文件打包输出到 ./build/main.js文件

        整体打包环境是生产环境

   2.结论

        1.webpack能处理js/json资源,不能处理css/img等其他资源

        2.生产环境和开发环境讲ES6模块化贬义词浏览器能识别的模块化~

        3.生产环境比开发环境多一个压缩js代码

这是一些webpack简单的代码 

/*
    webpack.config.js webpack的配置文件
        作用:指示webpack干那些活(当你巡行webpack指令时,会加载里边的配置)

        所有构建工具都是基于nodejs平台运行的~模块化默认采用commonjs.
*/
const { resolve} =require('path');
const HtmlWebpackPlugin = require("html-webpack-plugin");//(这是一个打包html的插件)
const miniCssExtractPlugin = require("mini-css-extract-plugin");//这个打包css文件的插件

module.exports ={
    // webpack配置
    // 入口
    entry:'./src/index.js',
    // 输出
    output:{
        // 输出文件名
        filename:'built.js',
        // 输出路径
        // __dirname nodejs的变量,代表当前文件的目录绝对路径
        path:resolve(__dirname,'bulid')
    },
    //loader的配置
    module:{
        rules:[
            // 详细的loader配置
            // 匹配那些文件
            {
            test: /\.css$/,
            use:[
                // use数组中loader执行顺序:从右到左,从下到上执行
                // 创建style标签,将js中样式资源插入进行,添加到head中生效
                'style-loader',
                // 将css文件变成commonjs模块加载js中,里面内容是样式字符串
                'css-loader'
            ]
            },
            {
                test: /\.less$/,
                use:[
                      miniCssExtractPlugin.loader,,
                    'css-loader',
                    // 将less转化为css文件
                    'less-loader'
                ]}
        ],
    },
    // plugins的配置
    plugins:[
      // html-webpack-plugin
    // 功能创建一个空的html,自动引入打包输出的所有资源(js/css)
    // 需要一个有结构的html文件
    new HtmlWebpackPlugin({
      // 复制 './src/index.html' 文件,并自动打包输出所有资源(js/css)
      template: "./src/index.html",
    }),
 new miniCssExtractPlugin({
      filename: "css/bulit.css",
    }),],
    // 模式
    mode:'development',
    // mode:'production'
}

 其中打包图片资源webpack5已经有了,但是html中的图片还是需要配置

这个就是rules中的代码

 {
        test: /\.html$/,
        // 渲染处理html中图片路径
        loader: "html-loader",
      },

除了这些 还有css兼容需要看浏览器是否兼容,这就使得需要特殊的插件去兼容css

postcss-loader

 {
        test: /\.css$/,
        use: [
          miniCssExtractPlugin.loader,
          "css-loader",
          {
            loader: "postcss-loader",
            options: {
              postcssOptions: {
                ident: "postcss",
                plugins: ["postcss-preset-env"],
              },
            },
          },
        ],
      },

还有js兼容es6=>es5需要babel

 const CssMinimizerWebpackPlugin = require("css-minimizer-webpack-plugin");

//这中间是关于js文件的转化
 {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"],
            plugins: [["@babel/plugin-transform-runtime"]],
          },
        },
      },


optimization: {
    minimizer: [new CssMinimizerWebpackPlugin()],
  },

我大致知道的也就这么多!随着webpack的更新 很多都不能按照以前写了,如果不行的话,可能就是版本的问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值