webpack| 青训营笔记

54 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第11天

webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。

一、什么是Webpack?

本质上是一种前端资源编译、打包工具

​ 文件结构

.
|——src
|   ﹂index.js
|——webpack.config.js

1.安装依赖

npm i -D webpack webpack-cli

2.编辑配置文件

module.exports={
    //声明入口:要打包的文件
    entry:'index.js',
    //声明产物出口
    output:{
        filename:"[name].js",
        //项目打包后的存放位置
        path:path.join(__diename,"./dist"),
    },
    module:{
        rules:[{
            test:/.less$/i,
            use:['style-loader','css-loader','less-loader']
        }]
    }
}

3.执行编译命令

npx webpack

image.png

使用Webpack

image.png

image.png

流程类的配置需要经过entryresolvemoduletarget等几个部分。工具类配置又可以细分为开发效率类、性能优化类、日志类等。 Tree-Shaking作用:删掉没有用到的代码。

理解Loader

loader分为less-loader、css-loader和style-loader。

  • 为了处理非标准JS资源,设计出资源翻译模块
  • 用于将非js资源翻译为标准的js资源

image.png

  • 心智成本高
  • 可维护性低
  • 缺少生命力

学习方法

1.入门应用

  • 理解打包流程
  • 熟练掌握常用配置项、Loader、插件的使用方法,能够灵活搭集成Vue、React、Babel、Eslint、Legg、Sass、图片处理 等工具的Webpack 环境
  • 掌握常见脚手架工具的用法,例如:Vue-ci、create-react-app.@angular/cli

2.进阶

  • 理解Loader、Plugin机制,能够自行开发Webpack组件
  • 理解常见性能优化手段,井能用于解决实际问题
  • 理解前端工程化概念与生态现状

3.大师级

阅读源码,理解Webpack编译、打包原理,甚至能够参与共建

image.png