我对node.js的模块加载器和新的harmony模块规范非常感兴趣。
总的来说,我喜欢这个规范,但有一个问题我不确定它是如何解决的。
如果想要构建一个跨平台的JavaScript库,有时需要在不同的平台上使用不同的库来完成相同的工作。例如,node.js中的Buffer模块在浏览器中不存在,因此必须编写一个抽象模块,该模块根据平台加载不同的代码。
既然harmony在执行任何代码之前解决了依赖关系,它怎么知道只需要为一个平台加载代码,而不是为所有平台加载代码?
在浏览器中,我不想加载只在node.js中运行的代码,那么这个问题该如何解决呢?
发布于 2012-11-06 19:42:12
在ES6中加载模块有两种方法:(1)静态地,通过module X at "url"
声明(或它最终使用的任何具体语法),或(2)动态地,通过loader的load
方法。对于您的场景,您可能希望对那些依赖于上下文的模块使用选项2。
在浏览器中,您还可以使用多个<script>
标记来暂存您的程序,但是由于这不适用于node.js,因此它可能对您的用例没有帮助。
https://stackoverflow.com/questions/13247370
复制相似问题