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

Javascript 如何将xterm.js与Meteor一起使用,javascript,meteor,xtermjs,Javascript,Meteor,Xtermjs,我正在尝试在我的Meteor应用程序中使用该用户,但我无法使其正常工作,因为我得到的终端未定义 我在客户机的main.html中使用的xterm如下所示: <script src="../imports/ui/xterm.js"></script> <div id="terminal"></div> <script> var term = new Terminal(

我正在尝试在我的Meteor应用程序中使用该用户,但我无法使其正常工作,因为我得到的
终端未定义

我在客户机的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>

变量项=新端子();
term.open(document.getElementById(“#terminal”);
write('Hello from\033[1;3;31mxterm.js\033[0m$”)
xterm被导入,因为如果我查看终端,我可以看到:


有人已经将xterm.js与Meteor一起使用,可以让我走上正确的道路吗?

它不会以这种方式工作。您需要在
客户端/main.js
文件中导入该文件,并在以下情况下使用其功能:

client/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
语句。

它将不起作用。您需要在
client/main.js
文件中导入该文件,然后在以下情况下使用其功能:

client/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
语句。

这并不能回答meteor的问题!但这是为那些在这里登陆使用电子应用程序或workfl的人添加的不支持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类的引用


希望能有所帮助!

这并不能回答meteor的问题!但这是为那些在这里工作的电子应用程序或工作流不支持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类的引用


希望能有帮助!

当我这样做时,我在开发控制台中看不到xterm.js,但我仍然收到相同的错误
xterm.js
文件,你是如何得到它的?你能确保它在浏览器上工作吗?也许让我们尝试将它添加到静态html文件中,看看它是否工作如果我使用localhost/js/xterm.js,该文件将显示在我的浏览器上。(是的,我移动了xterm.js,但我也移动了你的答案)。我通过在我的项目中复制repo和移动dist/xterm.js获得了它现在我有
TypeError:Terminal不是构造函数
Ok现在它“工作了”,我没有错误,显示了一些东西,但它非常难看,我确定它不是应该的样子,但我会尝试找出为什么它会这样显示,当我这样做时,我在开发控制台中看不到xterm.js,我仍然收到相同的错误
xterm.js
文件,你是如何得到它的?你能确保它在浏览器上工作吗?也许让我试试将它添加到一个静态html文件中以查看它是否工作如果我使用localhost/js/xterm.js,该文件将显示在我的浏览器上。(是的,我移动了xterm.js,但我也使用了你的答案)。我通过在我的项目中复制repo并移动dist/xterm.js获得了它现在我有了
类型错误:终端不是构造函数
确定它“工作”,我没有错误,显示了一些东西,但它非常难看,我确信它不是应该的样子,但我会尝试找出为什么它会这样显示