2016-04-20 9 views
0

Я пишу приложение с использованием NW.js и TypeScript. Я хотел бы использовать один класс для каждого файла.TypeScript + NW.js: нужны пространства имен для браузера, нужны commonjs для nodejs. Как получить оба?

Чтобы получить доступ к модулям node.js, мне нужно использовать require(). Однако контекст document в модуле require() d больше не является контекстом браузера document.

Мне кажется, что мне нужно придерживаться пространств имен, чтобы иметь возможность доступа к DOM браузера из моего приложения.

Как объединить эти два стиля модулей в одном приложении TypeScript? При попытке использовать namespace вместе с require, мои типы внезапно теряют видимость через файлы (поскольку компилятор переходит в режим внешнего модуля.)

ответ

0

Мне кажется, что мне нужно придерживаться пространств имен, чтобы иметь возможность доступа к обозревателю DOM из приложения

No. Вы можете использовать модуль загрузчика как WebPack объединять участки, которые нужны браузер в одном bundle.js сохраняя весь код базы в commonjs режиме.

Больше

Quickstart доступен: https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html

Больше Больше

Я на самом деле создание редактора ОСС, который демонстрирует это: http://alm.tools/. Весь проект (backend + server) имеет файлtsconfig.json.

+0

Спасибо за указатели. Не могли бы вы включить короткую версию решения в ответ, в дополнение к ссылке? Кроме того, как знает веб-пакет, который не требует выполнения и перехода к среде node.js NW.js? – user3779342

+0

Больше не нужно. Ответ заключается в использовании загрузчика модуля, например. WebPack. Вам не нужно использовать веб-пакет, который вы можете использовать для браузера. – basarat

+0

'как webpack знает'. Поскольку он понимает модульную систему commonjs – basarat