首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在网页中以编程方式加载带有Traceur的ES6模块

在网页中以编程方式加载带有Traceur的ES6模块
EN

Stack Overflow用户
提问于 2016-04-05 19:12:20
回答 2查看 511关注 0票数 0

我一直在使用Traceur在ES6中开发一些项目。在我的HTML页面中,我包含了本地Traceur源代码:

代码语言:javascript
复制
<script src="traceur.js"></script>
<script src="bootstrap.js"></script>

如果我在HTML中有一个模块,如下所示:

代码语言:javascript
复制
<script type="module" src="foo.js"></script>

然后Traceur加载到该模块中,编译它,一切都很好。

现在,我想以编程方式将一个ES6模块从另一个ES6模块中添加到页面中(原因有点复杂)。这是我的第一次尝试:

代码语言:javascript
复制
var module = document.createElement('script');
module.setAttribute('type', 'module');
module.textContent = `
    console.log('Inside the module now!');
`;
document.body.appendChild(module);

不幸的是,这并不起作用,因为我猜,Traceur不会监控添加的每个脚本标记的页面。

如何让Traceur编译并执行脚本?我想我需要在'traceur‘或'$traceurRuntime’上调用一些东西,但我还没有找到一个很好的在线文档来源。

EN

回答 2

Stack Overflow用户

发布于 2016-04-05 21:06:56

您可以使用ES6 import语句或用于动态依赖的TraceurLoader应用编程接口加载其他模块。

来自Traceur Documentation的示例

代码语言:javascript
复制
function getLoader() {
  var LoaderHooks = traceur.runtime.LoaderHooks;
  var loaderHooks = new LoaderHooks(new traceur.util.ErrorReporter(), './');
  return new traceur.runtime.TraceurLoader(loaderHooks);
}
getLoader().import('../src/traceur.js',
    function(mod) {
      console.log('DONE');
    },
    function(error) {
      console.error(error);
    }
);

此外,似乎也支持System.js加载器

代码语言:javascript
复制
window.System = new traceur.runtime.BrowserTraceurLoader();
System.import('./Greeter.js');
票数 1
EN

Stack Overflow用户

发布于 2016-04-08 22:52:23

动态模块加载是System的一个(尚未标准化的)特性

代码语言:javascript
复制
System.import('./repl-module.js').catch(function(ex) {
  console.error('Internal Error ', ex.stack || ex);
});

要实现这一点,您需要先包含npm test,然后包含BrowserSystem

代码语言:javascript
复制
<script src="../bin/BrowserSystem.js"></script>

您可能还想研究一下https://github.com/systemjs/systemjs,因为它对浏览器加载有很好的支持。

顺便说一句,System对象最终可能会在WHATWG:http://whatwg.github.io/loader/#system-loader-instance中标准化(可能使用不同的名称

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36424772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档