У меня есть один корневой проект, который содержит как серверные, так и клиентские приложения со примерно следующей структурой:
-- server
-- node_modules
-- index.ts
-- package.json
-- ...
-- client
-- node_modules
-- index.ts
-- package.json
-- html/
-- css/
-- ...
Я ищу лучший способ скомпилировать все это и сделать клиентскую часть статичнойфайлы, доступные для сервера. Я попытался это сделать, установив outDir
на ../build
для проекта server
и установив его на ../build/static
для проекта client
. К сожалению, это не сработало, потому что tsc
не работает с файлами за пределами корневой папки проекта (например, модули узла не могут быть вызваны из сборки, исправьте меня, если я ошибаюсь!).
Также,было бы очень хорошо, если бы я мог прослушивать изменения в файле машинописного текста и автоматически создавать этот файл при обнаружении такого изменения.
Я изучил такие параметры, как gulp, Webpack и parcel, но я неуверен, что самое лучшее и простое решение.
Один из способов заставить его работать - использовать один проект для server
и client
. Следующая структура:
-- node_modules
-- package.json
-- index.ts
-- server/
-- static/
-- html/
-- ...
но таким образом, существует только одна папка node_modules
и один файл package.json
для клиентской и серверной сторон, что может быть не лучшим способом (опять же, правильномне, если я ошибаюсь!).