Постепенно перейти от включения каждого JS-файла в пакет модулей - PullRequest
0 голосов
/ 17 октября 2018

В нашем приложении AngularJS в настоящее время у нас есть много (400+) файлов, которые включаются с помощью <script> -tags.Порядок этих файлов выглядит примерно так:

  1. Файлы сценариев AngularJS
  2. плагины / модули сторонних производителей
  3. файлы бизнес-логики
    • модули
    • services
    • контроллеры / компоненты / директивы

Мы хотели бы перейти к более эффективному подходу, используя пакетный модуль и TypeScript.Новые файлы уже написаны на TypeScript, но не используют import / export.Чтобы упростить задачу, мы могли бы преобразовать каждый файл JavaScript в файл TypeScript и исправить возможные ошибки за приемлемое время.

Однако, прежде чем мы это сделаем, мы хотели бы иметь жизнеспособную стратегию того, какмы могли бы постепенно использовать import / export.Я думаю о чем-то вроде переписывания одного модуля время от времени, начиная с модулей в глубине дерева зависимостей.

Однако я не смог этого достичь, но я уверен, что другие уже должны были решить это раньше.

1 Ответ

0 голосов
/ 17 октября 2018

После того, как вы определитесь с пакетом модулей, вам необходимо узнать о его возможностях для (1) предоставления другим JavaScript-файлам на странице доступа к вещам, определенным в пакете, и (2) разрешению пакету доступа к вещам, определенным другимиJavaScript на странице.(Если вы можете выполнить миграцию в строгом порядке зависимости, вам, возможно, никогда не понадобится # 2.) Например, для Webpack # 1 будет library*, параметры вывода , а # 2 будет * 1004.* * внешние 1005 *.Затем просто перемещайте код в модули понемногу, корректируя конфигурацию по мере необходимости, чтобы каждая часть кода имела доступ к вещам, в которых она нуждается, из другой части кода.Поскольку Webpack поддерживает только один модуль экспорта библиотеки, во время перехода вам, возможно, придется поддерживать фиктивный модуль, который просто реэкспортирует все модули, к которым вам необходим доступ, из кода вне пакета.Это немного утомительно и представляет собой дополнительную работу, которую вам не пришлось бы выполнять, если бы вы мигрировали все сразу, но вы можете решить, что стоит заплатить эту стоимость, чтобы иметь возможность постепенной миграции.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...