Rollup是什么?
Rollup是下一代的ES6 JS文件打包工具。和Webpack相似,Rollup支持扩展插件开发,能把模块化的多个JS文件打包成一个文件,还能打包CSS文件(这个功能我还一直没有尝试过)。但是,经常被Rich Harris拿出来炫耀的是Rollup的tree-shaking的能力。即,在打包过程中,Rollup能够自动过滤与剔除没有用到的JS代码和没有调用过的JS函数。 Rollup打包的底层逻辑是“内联”处理被import的ES6模块代码。我理解Rollup是把ES6模块当作是JAVA里的Inline Function来处理的。对于模块动态加载,或许Rollup打包器不能直接满足这个需求。而需要另一个ES6 API:System.import(…)。
Rollup-WebWorker打包插件 的 需求由来
Rollup自身强悍,也有丰富的第三方插件。请见。但是,这个活跃的生态系统似乎遗漏了我正在遇到的需求类型。简单地概括: 打包 运行在Web Worker里的,依赖传统JS库的,遵循ES6 Moulde规范的 JavaScript程序文件 成为 一个IIFE文件。 我的需求包括以下几个关键点:
- “运行在Web Worker里”意为着 Rollup基于external和globals配置参数的映射机制 对 我的需求 无效。
- 简单地说,Rollup的external和globals配置参数 被设计用来 把‘ES6 Import指令’先映射到 HTML