【发布时间】:2014-04-12 05:49:45
【问题描述】:
如何使用 JavaScript 的 ES6 模块加载和运行现有库?
例如,假设我需要加载一个现有的 polyfill:
import {poly} from "thirdParty/poly";
如何运行导入的poly 脚本并将其属性加载到当前命名空间而不更改源?
这里有两个实际问题可以帮助澄清我要解决的问题:
-
我有一个名为
rafPolyfill.js的脚本,它是window.requestAnimationFrame 的polyfill。我需要将它导入全局范围并在加载后立即运行它。使用<script>标签很容易做到这一点:
它运行并将自身加载到全局范围内。使用 ES6 模块如何做到这一点?
-
我有另一个名为
Font.js的脚本,它是字体的预加载器。它可以让你像这样创建新的字体对象:var font = new Font();
我使用 Font.js 通过使用脚本标签加载它,如下所示:
<script src="Font.js"><script>
如果不访问、更改或理解此脚本的源代码,如何使用 ES6 模块以与 <script> 标签相同的方式加载和使用?我只需要这些脚本在加载时运行并自行处理。
可能的解决方案是使用模块加载器 API:
http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders
本文档描述了System 加载程序的全局绑定,但恐怕我没有足够的词汇来完全理解它试图解释的内容。对解码此文档的任何帮助将不胜感激!
【问题讨论】:
标签: javascript import module ecmascript-harmony ecmascript-6