Проблема слияния объявлений и вложенных узловых модулей - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть следующая структура:

  • @ my / app
    • node_modules
      • @ types / angular
      • @ types / angular -translate
      • @ my / library
        • node_modules
          • @ types / angular

Проблема в том, что @types/angular-translate расширяет определения @types/angular путем объединения объявлений.

С другой стороны, кажется, @my/app и @my/library так или иначе используют разные версии @types/angular, даже если я не могу найти разницу, сравнивая оба package.jsons. Вот почему @my/library имеет свои собственные node_modules со своими @types/angular. Но, поскольку у него нет собственного @types/angular-translate, никто не добавляет типы перевода angular в пространство имен angular, и я получаю следующую ошибку:

import {
    animate
} from "angular";

TS2305: Модуль '@ my / app / node_modules / @ my / library / node_modules / @ types / angular "' не имеет экспортированного члена 'translate'

Как я уже сказал, я нашел нет различий между версиями @my/app и @my/library. Что может быть не так? У меня больше уровней вложенности с библиотеками, использующими другую версию @types/angular.

1 Ответ

0 голосов
/ 16 апреля 2020

Я все еще не понимаю 100%, но, похоже, разные версии вложенных @types/angular зависимостей вызывали установку этих @types/angular внутри @my/library/node_modules.

Я синхронизировал все версии @types/angular между моими библиотеками и не работает.

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

...