Angular CLI не может найти модули из локальной библиотеки - PullRequest
0 голосов
/ 06 июня 2018

Я создаю угловую библиотеку: @my_library/sdk, а также создал пример проекта для его тестирования.Проблема заключается в том, что при установке библиотеки на моем примере проекта сборка angular жалуется, что не может найти модуль:

ОШИБКА в ./src/app/app.module.ts Модуль не найден: Ошибка: Не удается разрешить '@ my_library / sdk' в '/ Users / eestein / Documents / dev / my_library / sdk-front / samples / src / app' ОШИБКА в ./src/app/app.component.ts Модуль не найден: Ошибка: невозможно разрешить '@ my_library / sdk' в '/ Users / Eestein / Documents / dev / my_library / sdk-front / samples / src / app'

Если я открою оба оскорбительныхВ файлах (app.component.ts и app.module.ts) в VSCode ошибки не отображаются.Похоже, VSCode может найти его, но Angular CLI не может.Пакет также находится в папке node_modules.

Это то, что у меня есть в моем package.json примере проекта:

"@my_library/sdk": "file:///Users/eestein/Documents/dev/my_library/sdk-front/library/my_library-sdk-1.0.0-alpha.2.tgz"

Это моя структура папок:

- library
   - library's code
   - *.tgz file
- samples
    - samples' code
    - package.json referencing the tgz file

Я открыл проблему на странице angit cli GitHub, но прошло 8 дней, а ответов нет, поэтому я пытаюсь ТАК ...

Это ссылка на проблему:https://github.com/angular/angular-cli/issues/11054

Настройка

Angular CLI: 1.7.4
Node: 7.7.3
OS: darwin x64
Angular: 5.1.3
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.4.2
webpack: 3.11.0

Есть идеи о том, в чем может быть проблема?Проблема локальная, если я опубликую библиотеку в моем личном репозитории npm и установлю ее оттуда, она будет работать.

Спасибо.

1 Ответ

0 голосов
/ 25 сентября 2018

Кажется, что даже после установки файла .tgz этот angular-cli по-прежнему ищет модуль в разделе paths в tsconfig.json, который обычно равен dist/@namespace/lib.

.ng build --prod удаляет содержимое папки dist перед компиляцией, и поэтому, когда он пытается создать приложение, модули больше не существуют.Я справился с этим, указав вывод команды build, чтобы приложение переместилось в другую папку.

ng build -prod --output-path=production

...