2017-01-16 7 views
0

Я пытаюсь использовать user xterm.js в моем приложении Meteor, и я не могу заставить его работать, потому что я получил Terminal is not defined.Как использовать xterm.js с Meteor

Я использую 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 с Meteor и может поставить меня на правильный путь?

ответ

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 файле.

Update: если он все еще не работает, то пусть переместить файл xterm.js в client/compatibility/xterm.js и удалить import заявление в коде выше.

+0

Когда я это делаю, я не вижу xterm.js в консоли dev, и у меня все еще есть такая же ошибка – Jerome

+0

Файл 'xterm.js', как вы его получили? Не могли бы вы убедиться, что он работает в браузере? возможно, попробуйте добавить его в статический html-файл, чтобы увидеть, работает ли он. – Khang

+0

Если я делаю localhost/js/xterm.js, файл отображается в моем браузере. (Да, я переместил xterm.js, но я тоже сделал это с вашим ответом). И я получил его, выполнив копию репо и перемещая dist/xterm.js в моем проекте – Jerome

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. то вы получите ссылку на класс терминалов.

Надеюсь, что это поможет!