webpack基础入门

本文介绍了Webpack的基础概念,包括Entry、Output、Module、Resolve和Plugin。Entry是Webpack构建的起点,Module代表一切皆模块,Chunk是代码块,Loader负责模块转换,Plugin提供扩展功能。Output则设置输出文件的名称、路径和公共路径。详细讲解了各配置项的用法,如Entry的context、type和Chunk名称,Output的filename、path和publicPath,以及Module的Loader配置和Resolve的alias与extensions。最后提到了Plugin在MPA应用配置中的应用。
摘要由CSDN通过智能技术生成

一、核心概念

  • Entry:入口,Webpack执行构建的第一步是从Entry开始,可抽象为输入;
  • Module:模块,在Webpack里一切皆模块,一个模块对应一个文件。Webpack会从配置的Entry开始递归找出所有依赖的模块;
  • Chunk:代码块,一个Chunk由多个模块组合而成,用于代码合并与分割;
  • Loader:模块转换器,用于将模块的原内容按照需求转换为新内容;
  • Plugin:扩展插件,在Webpack构建流程中的特定时机注入扩展逻辑,来改变构建结果或者做我们想做的事;
  • Output:输出结果,在Webpack经过一系列处理并得出最终想要的代码后输出的结果。

大致流程如下:
Webpack在启动后会从Entry里配置的Module开始,递归解析Entry依赖的所有Module。每找到一个Module,就会根据配置的Loader去找出对应的转换规则,对Module进行转换后,再解析当前Module依赖的Module。这些模块会根据Entry为单位进行分组,一个Entry及其所有依赖的Module被分到一个组内,也就是一个Chunk。最后,Webpack会将所有Chunk转换成文件输出。在整个流程中,Webpack会在恰当的时机执行Plugin里定义的逻辑。

详解Webpack核心概念

(一)、Entry

Entry配置是必填的,如果不填将会导致Webpack报错,退出。
1、context:Webpack在寻找相对路径的文件时会以context为根目录,context默认为执行启动Webpack时所在的当前工作目录。

context: path.resolve(__dirname, '../'),

需要注意的是,context必须是一个绝对路径的字符串。
2、Entry类型:可以为string、array、object三者中任意类型。

  • string:'./app/entry'、入口模块的文件路径,可以是相对路径;
  • array:['./app/entry1','./app/entry2']、入口模块的文件路径,可以是相对路径;
  • object:{a:'./app/entry',b:['./app/entry1','./app/entry2']},配置多个路口,每个入口生成一个chunk。

3、Chunk的名称
Webpack会为每个生成的Chunk取一个名称,Chunk的名称和Entry的配置有关。

  • 如果Entry是一个string或array,就只会生成一个Chunk,这时Chunk的名称是main;
  • 如果Entry是一个object,那么会出现多个Chunk,这时Chunk的名称是object键值对中键的名称。

4、为MPA应用配置Entry

在untils.js文件中添加如下代码逻辑:

// untils.js
const path = require('path')
const glob = require('glob')
const PAGE_PATH = path.resolve(__dirname, '../src/pages');
exports.entries = function() {
   
 var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
 var map = {
   }
 entryFiles.forEach((filePath) => {
   
   var
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值