Автономный пример BokehJS

Как начинающий пользователь машинописного текста (но опытный пользователь Bokeh), я пытаюсь взять один из примеров BokehJS и запустить его автономно - это находится за пределами файловой иерархии репозитория Bokeh git.

Так, например, если я хочу запустить burtin Например, я копирую .ts, .html а также tsconfig.json (с верхнего уровня examples каталог) в новую папку. Я могу затем изменить link а также script теги в .html файл для указания на локальные копии соответствующих ресурсов. Когда я пытаюсь бежать tsc burtin.tsЯ получаю следующие ошибки:

$ tsc burtin.ts
burtin.ts(2,16): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(2,16): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(3,27): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(5,18): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(6,16): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(8,24): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(9,3): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(10,3): error TS2304: Cannot find name 'Bokeh'.

Как мне сказать компилятору машинописного текста, где найти Bokeh? tsconfig.json в burtin Пример имеет следующее:

{
  "extends": "../tsconfig.json",
  "files": [
    "../../src/coffee/api/typings.d.ts",
    "burtin.ts"
  ]
}

и, возможно, typings.d.ts говорит компилятору, где искать экспортированные имена BokehJS, но неясно, нужно ли мне иметь полную исходную базу bokeh для компиляции примера (typings.d.ts файл не включен, когда вы conda install bokeh).

Любое понимание того, как вы настроите этот пример и запустите его отдельно, будет оценено.

ОБНОВЛЕНИЕ: хотя tsc выдает ошибки, все равно выдает рабочую burtin.js и HTML-страница отображается правильно. Мне просто непонятно, есть ли более оптимальный способ настройки среды разработки.

1 ответ

Решение

Бег tsc burtin.ts пренебрегает tsconfig.json, Ты должен бежать tsc -p tsconfig.json (или же tsc -p .) вместо Таким образом, вы получите сообщение об ошибке, когда наборы (файлы d.ts) не найдены. Наборы должны быть частью пакетов conda и npm, но, похоже, у нас здесь регрессия, поэтому сейчас вам придется прибегнуть к клонированию репозитория bokeh или копированию файлов *.d.ts. Они необходимы только для компиляции и не используются во время выполнения. Имея типизацию или нет, TypeScript все равно скомпилирует файл *.ts и выдаст действительный файл *.js, если нет синтаксиса или других фундаментальных ошибок и noEmitOnError установлен в false, Это связано с тем, что система типов TypeScript полностью стирается перед созданием файла *.js, а код на основе типов программы не генерируется.

Учитывая, что поддержка TypeScript в bokehjs находится в стадии активной разработки, а bokehjs переписывается с нуля в TypeScript, в этой области должны быть сделаны значительные улучшения через несколько недель. В частности, будут предоставлены новые автоматически сгенерированные наборы текста, охватывающие всю библиотеку. В идеале должен быть один файл bokeh.d.ts для включения.

Другие вопросы по тегам