如何将xterm.js与Meteor一起使用

时间:2017-01-16 09:37:09

标签: javascript meteor xtermjs

我尝试在我的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是因为如果我看一下终端,我可以看到: enter image description here

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

2 个答案:

答案 0 :(得分: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语句。

答案 1 :(得分:0)

这不能回答流星的问题!但对于那些在这里工作的电子应用程序或不支持ES6导入语句的工作流程来说,这是一个补充。版本8和9月初的节点不支持ES6导入语句!如果你在这种情况下!在这里你应该如何导入它:

//importing xterm (because node don't support import {Terminal} from 'xterm';)
const xterm = require('xterm');
var Terminal = xterm.Terminal;
它分两步走了!你需要第一个xterm。然后你会得到一个Terminal类的引用。

希望有所帮助!