问问题
687 次
1 回答
3
从 v4 开始,xterm.js 尚未在其包中公开 ES6 模块接口(计划在 v5 中使用)。指南import
中提到的在这方面有点误导(不想让你厌烦细节,只是这个 - 它解决了 Typescript 的导入,require
由于内部项目设置,当前被转译)。我承认指南可以更清楚地说明这一点。
在 ES6 导出之前,捆绑包实际上包含什么?
顶级的旧 vanilla JS 定义,因此它们适用于普通<script>
标签:
xterm.js
Terminal
暴露构造函数 的终端的主包,例如这应该工作:<script type="text/javascript" src="path/to/xterm.js"></script> ... <script type="text/javascript"> const term = new Terminal(...); // Terminal is now defined </script>
xterm-addon-xy.js
单独的插件包在单独的命名空间下公开所有插件导出。命名空间名称与插件构造函数相同,例如:<script type="text/javascript" src="path/to/xterm-addon-xy.js"></script> ... <script type="text/javascript"> // important: since v4 addons are classes, // to load an addon we need an instance const addonInstance = new XYAddon.XYAddon(...); const otherAddonStuff = XYAddon['something_else_exported_by_the_addon']; // load addon someTerminalInstance.loadAddon(addonInstance); </script>
在您的特定问题中,这应该有效:
<script type="text/javascript" src="path/to/xterm.js"></script>
<script type="text/javascript" src="path/to/xterm-addon-attach.js"></script>
...
<script type="text/javascript">
const term = new Terminal(...);
const attachAddon = new AttachAddon.AttachAddon(new WebSocket(...), {bidirectional: true});
term.loadAddon(attachAddon);
</script>
于 2021-05-12T10:40:03.363 回答