实现一个小型打包工具

category
Web
date
Jul 21, 2023
icon
slug
mini-webpack
status
Published
summary
实现一个小型打包工具
tags
Webpack
JavaScript
type
Post

初始化

首先创建一个webpack目录,并安装Babel相关的工具
分别介绍一下每个包的作用
  • @babel/parser
    • 将代码转为AST
  • @babel/traverse
    • 遍历AST
  • @babel/core
    • 用于将AST转为代码,根据 preset 进行es5、es6等代码的编译
  • @babel/preset-env
    • 用于提供编译环境支持,已经不兼容的polyfill
 

使用

我们先从一个代码文件来查看babel的使用流程
代码如下所示
ImportDeclaration:这类东西都属于代码编译为AST所生成的token
 
接下来就是根据入口文件来遍历所有依赖获取依赖集,通过对每一个依赖进行 readCode 调用
这样我们就获取到了所有依赖关系了(ps: 入口文件也算一个依赖)
 
接着我们就对文件进行打包处理
 
最后通过
来对入口文件进行打包,并生成对应的 bundle.js
 

参考链接

  1. 透过实现小型打包工具理解webpack (bbsmax.com)

© JinSo 2021 - 2026