保险丝盒与动态模的史诗性
保险丝盒与动态模的史诗性
原文:https://medium.com/hackernoon/fusebox-and-the-epicness-of-dynamic-modules-b179373b803e

如今对动态模块的需求非常大。保险丝盒为后者提供了巨大的支持,提供了无限的可能。
为了让你们马上感兴趣,我准备了一个整洁的演示,
在此之前,我先解释一下 FuseBox 的内部,以及为什么框架最擅长处理动态模块。
生态系统
FuseBox 为浏览器提供 100%兼容的 commonjs 生态系统。您捆绑的每个文件都可以通过 FuseBox API 访问。它不会以任何方式修改您的代码,因此可以在运行时进行试验、合并包并修改它们。
我们来看一个例子。打开这个 angular2 todo-demo 。它由保险丝盒供电。打开一个开发者控制台,尝试导入这个文件,如下所示:
FuseBox.import("./todo/todo-filter.pipe")
您将获得 todo/todo-filter.pipe. 的导出
现在想象一下这会如何改变你的编码方式。
与 WebPack 不同,FuseBox 创建虚拟文件:
_s.file("foo/bar.js", function(exports, require, module, __filename, __dirname){
});_s.file("foo/woo.js", function(exports, require, module, __filename, __dirname){
})
它保持了包中的原始结构。因此,融合 2 束将是无痛的。创建运行时插件也很有趣。
访问任何国家预防机制模块
现在,让我们回到操场
我特意包含了 NodeJS 的路径模块,,正如你所看到的,你可以导入并使用它,就像你在服务器上运行代码一样。
FuseBox.import("path")
现在是有趣的部分。动态模块尊重它们的位置。因此,一个require函数将相应地处理您的导入。
FuseBox.dynamic("foo/moduleB.js", "")
就好像你有一个文件夹“foo”里面有“moduleB.js”
现在来点魔法。让我们注册index.js
FuseBox.dynamic("foo/index.js", "module.exports = require('./*')")
在这个例子中,我们使用了一个通配符导入。好像我们没有必要。只是为了好玩。像这样要求文件夹:
FuseBox.import("./foo")
它将在那个文件夹中触发index.js ,就像在 NodeJS 中一样。
带保险丝盒的动态模块很有趣。你可以覆盖模块,删除它们,注册新的,创建虚拟包,还有更多等着你去发现。
了解保险丝盒!
FuseBox 是一个捆绑器/模块加载器,结合了 webpack、JSPM 和 SystemJS 的强大功能。需要 50-100 毫秒来恢复…
hackernoon.com](https://hackernoon.com/fusebox-bundle-your-project-within-a-fraction-of-a-second-f2360ba95727)
如果你喜欢这个项目,别忘了在 github 上给它起个名字!当然,点击♥来传播这个消息
加入我们的 gitter 频道,我们很活跃也很友好!



