Установить проект Typescript с классами, общими для клиентских и серверных приложений?
У меня сейчас есть решение с двумя проектами. ServerApp (nodejs NTVS) и BrowserApp (приложение Html Typescript).
Я хочу разделить классы между обоими проектами и получить немедленный смысл.
Как это сделать?
PS: для тех, кто знает GWT, то, что я хочу, похоже на общий проект.
2 ответа
Мне удалось сделать это так:
- создать третий проект с именем SharedClasses (я использовал шаблон HTML Typescript)
- добавить мои общие классы в нем
- добавить файл shared_reference.ts со ссылками на эти файлы классов
- добавить ссылку на файл reference.ts в проектах ServerApp и BrowserApp, которые указывают на shared_reference.ts
/// <reference path="../SharedClasses/shared_reference.ts" />
Автозаполнение работает, F12 тоже...
Если вы используете внешний инструмент сборки, например, grunt-ts
это легче. Для ознакомления с демоверсией: https://github.com/basarat/demo-fullstack
С примером файла gruntfile ( https://github.com/basarat/demo-fullstack/blob/master/src/Gruntfile.js). Важный бит:
var commonFiles = "common/**/*.ts";
var serverFiles = ["server/**/*.ts", commonFiles];
var clientFiles = ["client/**/*.ts", commonFiles];