Сборка библиотеки не удалась с Angular 9 - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь перенести эту библиотеку https://github.com/flauc/angular2-notifications из Angular 2+ в Angular 9.

Первоначальная ошибка была о ModuleWithProviders, который стал универсальным типом, поэтому я исправил его,У меня также была ошибка, описанная здесь https://github.com/angular/angular/issues/32352, которую я исправил с помощью require('@angular/compiler-cli');, и теперь я сталкиваюсь с другой ошибкой:

.. / node_modules / @ angular / common / common. d.ts: 115: 22 - ошибка NG6002: появляется в NgModule.imports SimpleNotificationsModule, но не может быть преобразована в класс NgModule

Мне довольно сложно понять, что происходит, так как яникогда раньше не создавал библиотеку, и сборка с gulp выглядит довольно хакерской, поскольку эта строка ngc = require('@angular/compiler-cli/src/main').main относится к функции, которая не принадлежит общедоступному API.

Редактировать:

Следуя идее в комментариях (и моим собственным ощущениям), я попытался построить без gulp:

  • Создал angular.json файл
  • Разделилindex.ts в public_api.ts и simple-notifications.module.ts
  • Произошли некоторые изменения в структуре файлов и папок

Но у меня все та же точная ошибка ...

Моя попытка: https://github.com/youkouleley/angular2-notifications Я пытаюсь построить это с помощью ng build, сценарии в package.json не имеютобновлено

1 Ответ

1 голос
/ 23 октября 2019

Мне удалось заставить это работать, внеся некоторые изменения в репозиторий, который вы опубликовали для вашей попытки. Снимок экрана ниже:

terminal output

Внесены следующие изменения: enter image description here

Изменения в package.json не имеет значения.

enableIvy:false означает, что ваша библиотека не будет собираться с использованием механизма рендеринга Ivy (в настоящее время это рекомендуется для библиотек), но не препятствует использованию вашей библиотеки в приложении с поддержкой Ivy.

Известно, что IVY все еще находится в экспериментальном режиме

annotateClosureCompiler: false: связано с этой проблемой https://github.com/angular/angular/pull/26738

...