2015-09-20 4 views
1

Я хочу иметь следующую настройку проекта: Три папки верхнего уровня - клиент, общий и сервер. Все они представляют собой отдельный пакет со своей собственной папкой package.json и node_modules.Поделитесь общим пакетом между сервером и клиентом

Для примера ниже я использую эту структуру:

- common 
    - node_modules 
    - package.json 
    - entities.ts 

- server 
    - node_modules 
    - package.json 
    - app.ts 
    - tsconfig.json 

И я пытаюсь запустить TSC в папке сервера

файлы, которые должны быть использованы как клиент и сервер будет находиться в общей папке и я хотел бы использовать синтаксис модуля ES6 для их импорта с сервера и клиента, например import {MyModel} from 'common/entities';

Проблема в том, что я не могу понять, как настроить машинописный текст, чтобы понять эту настройку.

Я использовал npm link, чтобы обычное явление отображалось как обычный node_module на сервере, но указанный выше импорт генерирует ошибку Cannot find module 'common/entities'. Я пробовал добавить "moduleResolution": "node" в compilerOptions безрезультатно.

Можно ли получить машинописный текст, чтобы понять эту настройку, или есть ли такая настройка, которая вам предписана?

ответ

0

Можно ли получить машинописный шрифт, чтобы понять эту настройку, или есть ли такая настройка, которая предпочтительна для этого?

Я, как правило, просто пойти с одной tsconfig.json с одним node_modules. И тогда я просто стараюсь не использовать вещи за пределами common и client с интерфейсом.

Его еще лучше, чем было бы без безопасности TypeScript.

+0

Убить единственное node_modules сложно построить хороший артефакт, поскольку для удаления модулей, которые не используются в клиенте, требуется дрожание дерева, иначе он выдаст массивный результат. Я хотел бы решить это в хорошем смысле, иначе я прибегу к простому JS. Я считаю, что тесты должны обеспечивать безопасность, типы - это просто для удобства разработчиков. – Pajn

Смежные вопросы