Можете ли вы создавать пакеты Typescript? как c # dlls

Есть ли какое-то понятие упаковки файлов машинописного текста в настоящее время?

В момент, когда я пытаюсь перенести чистый проект javascript на машинописный текст, мне очень больно отсылать ссылки, в некоторых случаях, когда у меня есть сложные объекты, мне приходится писать несколько ссылочных операторов, извлекающих файлы из разных мест.

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

- modules
  |- module1
     |- models
     |- services
     |- controllers
  |- module2
     |- models
     |- services
     |- controllers
  |- core
     |- models
     |- services
        |- data
        |- validation

Существует гораздо больше, но вы понимаете, что в настоящее время ядро используется каждым модулем, но с помощью javascript я просто ожидаю, что оно будет загружено во время выполнения, что все равно должно произойти, однако, поскольку проблемы с машинописью действительно Во время компиляции мне было интересно, было ли какое-то представление об упаковке всех файлов машинописи в какую-то библиотеку машинописи или что-то подобное, и тогда на них можно было бы ссылаться из проектов, а не на модели module1, ссылающиеся на основные модели и т. д.

В настоящее время проблема заключается в структурах каталогов, поскольку пространства имен работают нормально, но если я перемещаю файл, мне нужно перейти к каждому файлу, который ссылается на перемещенный файл, и обновить его. Что утомительно, тогда как если есть какая-то идея пакета, то я мог бы просто сослаться на это после его вывода, так что я больше не беспокоюсь о файловых системах и каталогах, я просто беспокоюсь о пакете и пространствах имен.

Я думаю, что многое из этого очень похоже на то, как работает C #, у вас есть проект, в котором есть ссылки. Тогда каждый файл в этом проекте может использовать любой из классов в ссылках, поэтому экспозиция кода управляется ссылками и пространствами имен.

Я думаю о том, чтобы мой скрипт сборки просто создал локальный файл reference.ts и просто перебрал все файлы * .ts в соответствующем модуле и поместил их в один большой файл:

///
///
///

как показано выше, затем использование этого справочного файла во всех файлах машинописи, для которых требуются основные файлы, так что это действует как своего рода ссылка на уровне проекта, это может означать, что у некоторых файлов есть ссылки, в которых они не нуждаются, но это время компиляции, поэтому мне все равно. ..

Я не хочу идти на поводу у своего решения этой проблемы, если хороший путь уже существует, надеюсь, это имеет смысл ...

== РЕДАКТИРОВАТЬ ==

Я просто хотел опубликовать это здесь, так как мой сценарий сэкономил мне ТОННЫ времени, а также уменьшил мою ссылочную болтовню примерно на 99%, это не будет применимо для людей, которые неХотя у меня нет скриптов сборки.

Прямо сейчас, предполагая, что у вас есть скрипт сборки, я пошел по пути, чтобы в моем скрипте был шаг, который проходил через каждый отдельный файл в каталоге корневого уровня (в данном случае module1, module2 и т. Д.), А затем выводил local.references. TS в папку ссылок в этом каталоге. Затем я вручную написал external.references.ts, который ссылается на внешние дескрипторы или ссылки на другие модули, где это необходимо.

После того, как эта часть была сделана, когда я собираю свой машинописный текст, я в основном указываю его снова на корневые каталоги и приказываю им скомпилировать их все (* /.ts) в один большой js-файл (т.е. module1.js). Теперь, поскольку это будет автоматически включать локальные и внешние ссылки, мне не нужно помещать ЛЮБЫЕ ссылки в отдельные предложения.

Таким образом, этот способ предоставления локальных и внешних ссылочных файлов (local.reference.ts, external.reference.ts) включается в массовую обработку файлов, о которых вам просто нужно беспокоиться о пространствах имен, что делает его почти таким же, как в C # работать.

Однако, если у вас нет сценария сборки, который мог бы выполнять локальную генерацию ссылок и компиляцию машинописного текста, тогда данная ссылка на комментарий была бы хорошим вариантом.

Ответы на вопрос(1)

Ваш ответ на вопрос