# mini-webpack **Repository Path**: liu-zhengfeng-yyy/mini-webpack ## Basic Information - **Project Name**: mini-webpack - **Description**: 通过实现简易的前端 EsModule 打包功能 学习打包器的基本原理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-13 - **Last Updated**: 2024-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: 前端, Nodejs, ast, webpack ## README # mini-webpack > 通过实现简易的前端 EsModule 打包功能 学习打包器的基本原理 ## Feature - [x] 根据入口文件 读取文件内容 通过ast解析转换收集依赖
- [x] 根据依赖图 使用ejs template 生成可执行的bundle.js
- [x] 指定配置文件 对打包进行配置 ---minipack.config.js
- [x] 支持配置 entry: 入口模块路径(required)
- [x] 支持配置 outputDir: 打包文件输出路径(default:'./dist')
- [x] 支持配置打包生成的js文件名 outputFile
- [x] 打包过程计时功能
- [x] 实现已导入包的缓存 (代码已经实现此功能 但是babel在ast转换过程中也会自己处理多次导入同一模块的情况`function _getRequireWildcardCache`)
- [x] 支持配置 loader 实现非js代码转换 功能(实现jsonLoader)
- [x] 实现在loader中 通过this.getOptions 获取当前loader配置的options
- [x] 实现css-loader
- [x] 支持配置graph(default:true) 是否在打包输出路径 生成依赖图文件 - [x] 实现devServer项 实现开发环境预览(支持[live-server](https://www.npmjs.com/package/live-server)原生配置)(true:开启默认配置,{} 详细配置)
- [x] 实现publicDir配置项 配置静态文件(该配置项地址下的所有文件 会直接原封不动的打包到输出目录) - [x] 实现alias配置路径别名
- [x] 实现watch配置项 配置监听文件变化 重新打包