实现webpack的基本功能,即设置入口文件,找到所有的依赖文件,打包成一个bundle
三个函数
将js文件转化成模块
- 通过(babylon)[https://www.npmjs.com/package/babylon]将js文件转换成AST
- 将文件的所有依赖(import引入的文件)放进
deps
数组['./name.js']
- 将js通过babel转化成低版本的js代码
- 返回模块
递归获得依赖图集
将依赖图集的commonjs模块转化成浏览器能识别的模块
因为浏览器缺少node中的module
, export
, require
等环境变量
具体实现就是封装一个带有这几个变量的自执行函数
var module = {
exports: {}
};
(function(module, exports) {
exports.multiply = function (n) { return n * 1000 };
}(module, module.exports))
var f = module.exports.multiply;
f(5) // 5000