webpack基础

webpack基础

  • 设置webpack模式的几种方法

    1. npx webpack --mode=development (mode的优先级高于env)
    2. npx webpack --env=development
    // webpack.config.js
    module.exports = (env) => {
         
      return {
         
        mode: env
        //....
      }
    }
    

    以上两种方式只会影响模块内的环境变量(也不会影响plugin、loader内的环境变量)
    3. npx cross-env NODE_ENV=development webpack
    cross-env用于设置环境变量(兼容windows和mac)
    这种方式是设置当前node的环境变量

  • 执行webpack打包

    // 1. 使用默认配置
    // npm install webpack webpack-cli -D
    // npx webpack
    
    
    // 2. 自定义配置(webpack.config.js)
    const path = require('path')
    module.exports = {
         
      mode: 'development',
      entry: './src/index.js',
      output: {
         
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'build') // 必须是绝对路径
      }
    }
    // npx webpack --config webpack.config.js
    
  • webpack创建静态服务 – webpack-dev-server

    // npm install webpack-dev-server -D
    // 在webpack.config.js中配置devServer
    // 开发服务器的配置  -- 使用的是内存中打包后的文件
    const devServer = {
         
      port: 3000,
      static: {
           // webpack5使用static,不再使用contentBase
        directory: path.join(__dirname, 'build')  // 静态文件目录(如果你还有一些没有参与打包的静态文件也需要作为开发服务器的资源被访问,那你就需要额外通过配置“告诉” webpack-dev-server)
      },
      open: true, // 自动打开页面
      compress: true // 启用gzip压缩
    }
    
  • 将js文件引入模板html – html-webpack-plugin

    plugins = [
      // 把打包后的js文件引入模板html
      new HtmlWebpackPlugin({
         
        template: path.resolve(__dirname, 'src/index.html'),
        filename: 'index.html',
        minify: {
         
          collapseWhitespace: true, // 去掉换行
          removeAttributeQuotes: true // 删除双引号
        },
        hash: true
      })
    ]
    
  • 解析less – less-loader
    解析css – css-loader (解析@import语法)
    生成style标签插入模板 – style-loader

    module = {
         
      rules: [
        {
         
          test: /\.css$/,
          use: [
            {
         
              loader: 'style-loader',
              options: {
         
                insertAt: 'top'
              }
            },
            'css-loader'
          ]
        },
        {
         
          test: /\.less$/,
          use: [
            'style-loader',
            'css-loader',
            'less-loader'
          ]
        }
      ]
    }
    
  • 提取css,用link标签引入 – mini-css-extract-plugin

    module = {
         
      rules: [
        {
         
          test: /\.css$/,
          use: [
            MiniCssExtractPlugin.loader,  // 使用loader
            'css-loader'
          ]
        }
      ]
    }
    plugins = [
      new MiniCssExtractPlugin({
         
        filename: 'css/main.css'  // 输出路径
      })
    ]
    
  • postcss autoprefixer – 给css3样式添加前缀

    module = {
         
      rules: [
        {
         
          test: /\.less/,
          use: [
            'style-loader',
            'css-loader',
            'less-loader',
            'postcss-loader'
          ]
        }
      ]
    }
    
    // 添加postcss.config.js文件   postcss插件会读取这个文件
    module.exports = {
         
      plugins: [
        require('autoprefixer')({
         
          overrideBrowserslist: 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
webpack是一个用于打包JavaScript模块的工具。它可以将多个模块打包成一个或多个bundle文件,以便于在浏览器中加载。基本的webpack配置包括入口(Entry)、出口(Output)、加载器(Loaders)和插件(Plugins)等几个概念。 首先,你需要在项目中安装webpackwebpack-cli。你可以使用以下命令进行全局安装: npm install webpack webpack-cli -g 或者在项目中进行局部安装: npm install webpack webpack-cli --save-dev 接下来,你需要创建一个webpack配置文件webpack.config.js来配置webpack的行为。在该配置文件中,你可以设置入口文件、出口文件、加载器和插件等配置项。 加载器(Loaders)是用于处理非JavaScript文件的工具。你可以使用加载器来处理CSS、图片、字体等文件。例如,你可以通过配置css-loader和style-loader来处理CSS文件。 插件(Plugins)是用于扩展webpack功能的工具。你可以使用插件来优化输出、压缩文件、生成HTML文件等。例如,你可以使用html-webpack-plugin插件来生成HTML文件。 总结一下,webpack是一个用于打包JavaScript模块的工具,通过配置入口、出口、加载器和插件等几个概念,你可以将多个模块打包成一个或多个bundle文件。你可以按照上述步骤进行安装和配置,以便开始使用webpack。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Webpack基础教程](https://blog.csdn.net/weixin_44872023/article/details/131696358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [webpack基础教程](https://blog.csdn.net/k0101jcj/article/details/106825691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值