0

我正在尝试在我的 Meteor 应用程序中使用xterm.js,但我无法让它工作,因为我得到了Terminal is not defined.

我在客户的 main.html 中使用这样的 xterm:

<script src="../imports/ui/xterm.js"></script>
        <div id="terminal"></div>
             <script>
               var term = new Terminal();
               term.open(document.getElementById('#terminal'));
               term.write('Hello from \033[1;3;31mxterm.js\033[0m $ ')
             </script>

并且 xterm 被导入,因为如果我查看终端,我可以看到: 在此处输入图像描述

有人已经将 xterm.js 与 Meteor 一起使用并且可以让我走上正轨吗?

4

2 回答 2

3

它不会以这种方式工作。您需要在您的文件中导入该文件client/main.js并在之后使用它的功能:

客户端/main.js:

import '../imports/ui/xterm.js';

Meteor.startup(() => {
  var term = new Terminal();
  term.open(document.getElementById('#terminal'));
  term.write('Hello from \033[1;3;31mxterm.js\033[0m $ ')
});

请记住删除main.html文件中的两个脚本标记。

更新:如果它仍然不起作用,那么让我们将xterm.js文件移动到client/compatibility/xterm.js并删除import上面代码中的语句。

于 2017-01-16T10:55:18.797 回答
0

这并不能用流星回答这里的问题!但对于那些来到这里从事 Electron 应用程序或不支持 ES6 导入语句的工作流的人来说,这是一个补充。版本 8 和早期 9 的节点尚不支持 ES6 导入语句!如果你处于这种情况!在这里你应该如何导入它:

//importing xterm (because node don't support import {Terminal} from 'xterm';)
const xterm = require('xterm');
var Terminal = xterm.Terminal;

它分两步走!你需要第一个 xterm。然后你会得到对终端类的引用。

希望对您有所帮助!

于 2018-02-05T16:19:41.340 回答