Webpack重要知识点快速汇总

Webpack 重要知识点快速汇总

Webpack 已经是前端打包构建的不二选择
每日必用,面试必考
webpack是一个成熟的工具,重点在于配置和使用,原理并不高优


一、基本配置

安装配置

yarn add webpack webpack-cli -D

hash是为了前端在代码不变的情况下命中缓存,从本地读取,提高速度

mode: 'production',
entry: path.join(srcPath, 'index.js'),
output: {
   
  path: distPath,
  filename: '[contenthash:8].js',
}

dev-server

yarn add webpack-dev-server
devServer: {
   
  port: 9000,
  progress: true, // 显示打包进度
  contentBase: distPath, // 根目录
  open: true, // 自动打开浏览器
  compress: true, // 启动 gzip 压缩

  // 设置代理
  proxy: {
   
    // 将本地 /api/xxx 代理到 localhost:3000/api/xxx
    '/api': 'http://localhost:3000',

    // 将本地 /api2/xxx 代理到 localhost:3000/xxx
    '/api2': {
   
      target: 'http://localhost:3000',
      pathRewrite: {
   
        '/api2': ''
      }
    }
  }
}

配置package.json中的scripts

注意:在webpack4以后版本中,webpack-dev-server无法指定配置文件,可以替换使用webpack/server

"scripts": {
   
  "dev:build": "webpack --config build-base-conf/webpack.dev.js",
  "dev": "webpack serve --config build-base-conf/webpack.dev.js",
  "build": "webpack --config build-base-conf/webpack.prod.js"
}

解析ES6

yarn add @babel/core @babel/preset-env babel-loader
{
   
  test: /\.js$/,
  loader: 'babel-loader',
  exclude: /node_modules/,
  options: {
   
    presets: ['@babel/preset-env']
  }
}

解析样式

yarn add style-loader css-loader postcss-loader autoprefixer less-loader less
{
   
  test: /\.(css)$/,
  use: ['style-loader', 'css-loader', 'postcss-loader'] // postcss-loader 处理 css 的兼容性问题
},
{
   
  test: /\.(less)$/,
  use: ['style-loader', 'css-loader', 'less-loader']
}

postcss-loader的配置文件 postcss.config.js

module.exports = {
   
  plugins: [require('autoprefixer')]
}

解析图片文件

yarn add file-loader url-loader

生产模式:

// 图片,考虑 base64 编码的情况
{
   
  test: /\.(png|jpg|jpeg|gif)$/,
  use: [
    {
   
      loader: 'url-loader',
      options: {
   
        // 小于 5kb 的图片用 base64 格式产出,否则依然沿用 file-loader 的形式,产出 url
        limit: 5 * 1024,
        outputPath: '/img/',
      }
    }
  ]
}

开发模式:

// 直接引入图片URL
{
   
  test: /\.(jpg|jpeg|png|gif)$/,
  loader: 'file-loader'
}

模块化

webpack 本身默认支持模块化

常见loader和plugin


二、高级特性

webpack基本配置只能做demo,不能做线上项目。面试考察基本配置,只是为了快速判断你是否用过webpack。以下高级配置,也是通过面试的必要条件

多入口

SPA - 单页应用
但有时候也需要多页应用,就得打包多入口

entry: {
   
  index: path.join(srcPath, 'index.js'),
  other: path.join(srcPath, 'other.js')
},
output: {
   
  path
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
webpack重要知识点包括以下几个方面: 1. 模块化打包:webpack将前端的所有资源文件都视为模块,并根据模块的依赖关系进行静态分析,最终打包生成对应的静态资源。 2. 配置文件:webpack使用webpack.config.js文件来配置打包过程。在配置文件中可以设置入口文件、输出路径、加载器、插件等各种参数,以满足项目的需求。 3. 加载器:webpack通过加载器来处理各种类型的文件。常用的加载器有babel-loader用于处理ES6及以上的JavaScript代码,css-loader用于处理CSS文件,file-loader用于处理图片和字体文件等。 4. 插件:webpack的插件用于扩展其功能。常用的插件有HtmlWebpackPlugin用于生成HTML文件,CleanWebpackPlugin用于清理输出目录,MiniCssExtractPlugin用于提取CSS文件等。 5. 开发服务器:webpack-dev-server是一个开发服务器,它可以在内存中编译代码并提供资源,实现快速的开发和调试。 以上是webpack的一些重要知识点,它们可以帮助你更好地理解和使用webpack进行前端资源的构建和打包。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [webpack打包基础知识点与es6知识点.xmind](https://download.csdn.net/download/qq_43291759/13106867)[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: 33.333333333333336%"] - *2* [Webpack重要知识点](https://blog.csdn.net/sinat_17775997/article/details/95167425)[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: 33.333333333333336%"] - *3* [webpack知识点总结](https://blog.csdn.net/baidu_39067385/article/details/119428908)[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: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值