Включить автоматически сгенерированную зависимость в выходные node_modules - PullRequest
0 голосов
/ 03 августа 2020

У меня есть пакет React Native, в котором есть некоторые общие компоненты, которые будут использоваться другими пакетами. Этот пакет также имеет зависимость от node_module, который динамически создается во время сборки (эта зависимость используется для предоставления переведенного текста по всему пакету, и он создается автоматически на основе переводов, доступных ему во время сборки).

У меня вопрос - поскольку мой пакет зависит от этого автоматически сгенерированного node_module, когда я пытаюсь собрать и использовать свой пакет из другого пакета, он терпит неудачу, поскольку не может разрешить эту зависимость, поскольку он не упакован с этим. Итак, как я могу заставить его скопировать эту динамическую c зависимость node_module в выходной каталог node_modules, когда пакет собран и опубликован?

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

  • SharedComponents - содержит различные компоненты (счетчик, кнопка, карусель, ...), которые используются другими приложениями.
  • Application1 - Некоторое приложение, которое использует пакет SharedComponents или зависит от него.
  • Application2 - Другое приложение, которое зависит от SharedComponents.

Теперь внутри SharedComponents есть зависимость, которая динамически создает файлы перевода текста, когда пакет построен из gulp и создает новый модуль Dynami c node_module, который используется этим пакетом. Я не могу изменить эту архитектуру, так как не владею ею.

Я пытаюсь сделать так, чтобы каталог node_modules опубликованного пакета содержал этот динамический c node_module.

Я пробовал установить свойство files пакета. json содержать node_modules/text-translator, но это не сработало, потому что, согласно документации NPM для свойства файлов ( ссылка ), он будет игнорировать все указанное в node_modules независимо от того, что находится в файлах.

Я также пробовал использовать bundledDependencies , но это тоже не сработало, поскольку это не опубликованный модуль, поэтому он не смог найти его в нашем NPM репозиторий.

Кто-нибудь знает, что делать в этом случае? Возможно, я мог бы настроить задачу NPM для копирования поверх node_modules / text-translator, возможно, во время шага prepack (или есть лучший шаг, который имел бы доступ к существующему каталогу node_modules)? Но есть ли лучший способ сделать это?

...