初识 Webpack 配置(二)

目录

✎ 主要内容

✎ Webpack核心概念

➊ 入口 / 输出

➋ Loader

➌ Plugins(插件)

✎ 配置

◆ 入口配置

◆ 出口配置

◆ 模块配置

◆ 模块配置 resolve属性

◆ 插件配置

◆ 开发中服务器配置

✎ 总结

✎ 课程链接


  • ✎ 主要内容

  1. Webpack核心概念
  2. Webpack的常用配置

上一篇文章中,我们已经实现了一个基础的Webpack结构

里面有webpack.config.js,这个文件是我们在执行Webpack指令过程中会查找的配置文件

上一篇文章中指明了编译的入口文件、输出路径,以及生成文件的名称

       

问题:webpack.config.js到底是什么东西呢?

答:我们可以理解为是一个对象;

      module.exports可以对外公布一个js文件的相应内容!!

          

  • ✎ Webpack核心概念

  1. 入口
  2. 输出
  3. loader
  4. 插件
  • ➊ 入口 / 输出

  1. ➣ 入口起点(entry point)指示,webpack应该使用哪个模块,来作为构建及内部依赖图的开始;
  2. ➣ 进入入口起点后,webpack有哪些模块和库是入口起点(直接和间接)依赖的。
  3. ➣ 如图所示(其入口文件是src目录下的index.js文件,查找这个文件相依赖的内容

    

  • ➋ Loader

  1. loader让webpack能够去处理那些非Java script的文件(webpack自身只理解JavaScript)。
  2. loader可以将所有类型的文件转换为webpack能够处理的有效模块。
  3. loader作用如图所示

解析:借助一些相应的loader,将es6的语法转换为es5的语法;

  • ➌ Plugins(插件)

  1. Loader被用于转换某些类型的模块,而插件则可以用于执行范围更广的任务。
  2. 插件的范围,包括从打包优化和压缩一直到重新定义环境中的变量。
  3. 插件接口功能及其强大,可以用来处理各种各样的任务。
  4. 如图所示(可以提取我们所用到的css、生成html页面,从一个目录到另外一个目录的生成)

  • ✎ 配置

  • ◆ 入口配置

  1. Webpack的入口文件可以是单个也可以是多个,决定了最终打包出来是多个bundle还是一个;
  2. context设置基础目录绝对路径用于从配置中解析入口的起点,先去这里再去mian.js或者是a.jsresolve记得引入原生模块!!

  • 出口配置

  • 模块配置

module配置,主要属性有rules、test、include、exclude、use等

模块配置 resolve属性

设置模块如何被解析。webpack提供合理的默认值,但是还是可能会修改一些细节。

      

  1. 引入文件的require可以不写后缀
  2. 如下src/utils路径,可以设置别名为utils,可以用utils代替这样的一个路径!!

◆ 插件配置

plugins选项用于以各种方式自定义webpack构建过程。

  1. npm install 插件安装
  2. require 引入插件(pic
  3. new 具体使用位置,插件实例化,添加对应的属性(pic
  • ◆ 开发中服务器配置

webpack-dev-server用于启动一个开发过程中小型服务器,方便开发调试;

  1. port 制定服务器监听端口号
  2. contentBase:path.join(__dirname,"dist")  指告诉服务器资源路径在哪里
  3. compress 是否启动服务器gzip压缩(传输过程中变小,实现过程中再解压,增加反应速度)
  4. publicPath 设定可访问静态资源路径
  5. proxy 可以作为代理服务器向口段发送请求

  • ✎ 总结

module.export是对象,包含很多属性:

  1. entry是入口文件
  2. output输出路径
  3. module是指明用到的loader
  4. resolve可以不写后缀名
  5. plugins插件的使用和实例化
  6. devServer内置小型服务器
  • 课程链接

51cto学习课程(webpack配置)

https://edu.51cto.com//center/course/lesson/index?id=375192

发布了234 篇原创文章 · 获赞 52 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/Sicily_winner/article/details/104092303