如何使用xterm.js与流星

问题描述:

我想用户xterm.js在我的流星应用程序,我不能让它工作,因为我得到了Terminal is not defined如何使用xterm.js与流星

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

<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

已有人使用流星的xterm.js可以让我走上正轨?

它不会以这种方式工作。您需要导入的文件在你的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声明在上面的代码。

+0

当我这样做,我不能看到xterm.js在开发者控制台,我仍然得到了同样的错误 – Jerome

+0

的'xterm.js'文件,你怎么弄的?你能确定它在浏览器上工作吗?也许让试试把它添加到一个静态html文件,看它是否工作 – Khang

+0

如果我做localhost/js/xterm.js,该文件显示在我的浏览器上。 (是的,我移动了xterm.js,但我也是这样做的)。 我做回购的副本,并在我的项目 – Jerome

这不会流星这里回答这个问题!但是对于那些来到这里工作的人来说,这是一个添加了一个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。那么你会得到一个Terminal类的引用。

希望它有帮助!