// shared/index.ts export interface A { a: string; } // server/index.ts import { A } from 'src/shared'; На выхлопе: Error: Cannot find module 'src/shared' Симлинк shared лежит в server/src Самое интересное, что в самом вебшторме всё резолвится и есть возможность "пройти" внутрь папки, как через системный проводник, так и через сам вебшторм
А зачем? Я что-то похожее пробовал и не особо чтобы вышло... Можно попробовать вместо симлинка сделать path alias на папку и использовать какой-то сборщик
Есть как минимум 4 сервиса в docker-compose, которые разделяют общий функционал. Общие типы и т.д. Т.е. один shared конт, которые раздаёт всё общее И другие конты через симлинки подхватывают (должны были бы) Я пробовал разные варианты. Например, шарить сам волум, но тогда ts вообще ничего не видит Остаётся ещё два рабочих варианта: 1. Паковать всё в npm пакет или в репо закидывать 2. Через COPY физически копировать shared директорию в нужный конт И то и то по теореме Эскобара... поэтому хотелось бы как-то симлинками обойтись
Оба хорошие варианты решения. Третий - мучаться с путями и сборщиками, может даже залезать внутрь typescript и ручками ресолвить пути
Надо всё взвесить, у первых двух свои плюсы и минусы. А вот про третий хз, но пахнет бубном) Жаль, что через симлинки не получилось
"paths": { "@*": [ "src*" ], "@shared*": [ "src/shared*", "../shared*" ] } Опытным путём было высчитано, что проблема в самом вебшторме - если пробрасывать волумы, то всё "компилится", но вебшторм подсвечиваем место ошибкой Настройка "@shared" решает это. Первый элемент указывает на расположение shared папки внутри контейнера, тем самым давая возможность тсу нормально резолвить модули А второй элемент ссылается на реальную папку на хосте, тем самым успокаивая сам вебшторм
Обсуждают сегодня