【源码解读】模块懒加载(在使用时)
在看为什么vue文档能做到新内容可用更新(利用service worker)的时候,顺便看到了update-notifier(提示版本更新的库,实现方式:定时检查npm上的版本和本地package.json的版本对比,有差异就提示用户更新),看
update-notifier
源码的时候发现有很多lazyImport,觉得挺新奇,于是有了这篇文章
思想
为了提高应用的启动时间,在没有用到仓库的额外功能时不加载模块,所以将模块加载延迟到使用之前
使用方式
1 | const importLazy = require('import-lazy')(require); |
实现方式
实际上是用proxy代理了get操作,在get的时候才触发模块加载
1 | const lazy = (importedModule, importFn, moduleId) => |
这也导致我们在使用import-lazy的时候不能按需加载
1 | const {isNumber, isString} = importLazy('lodash'); // 不支持 |
【源码解读】模块懒加载(在使用时)