Для внешнего модуля не было задано имя - PullRequest
3 голосов
/ 24 марта 2019

Я создал библиотеку данных, затем попытался включить библиотеку данных в другую созданную библиотеку.Построено нормально, но получено - «Не было задано имя для внешнего модуля« my-data »в output.globals - угадывание« myData »».Чего мне не хватает?

Выполните шаги по воссозданию.

  • ng новый тест-проект --create = application = false
  • cd test-project
  • исправление аудита npm
  • ng g библиотека my-data
  • ng g библиотека my-core
  • ng g адресная книга приложения
  • ng build my-data
  • Затем в my-core.module добавить импорт {MyDataModule} из 'my-data';
  • Затем в my-core.module добавить импорт: [MyDataModule]
  • ng build my-core

my-core.module.ts

import { NgModule } from '@angular/core';
import { MyCoreComponent } from './my-core.component';
import { MyDataModule } from 'my-data';

@NgModule({
  declarations: [MyCoreComponent],
  imports: [MyDataModule],
  exports: [MyCoreComponent]
})
export class MyCoreModule { }
  • После сборки get "Не указано имя для внешнего модуля"my-data 'в output.globals - угадывание' myData '"

1 Ответ

6 голосов
/ 25 марта 2019

Это вызвано тем, что у вас есть внешняя зависимость, и вам необходимо объявить используемое имя, чтобы накопительный пакет знал, что искать при построении пакета UMD my-core.

Чтобы исправить предупреждение, объявите ваше my-data в ng-package.json

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/my-core",
  "lib": {
    "entryFile": "src/public-api.ts",
    "umdModuleIds": {
      "my-data": "my-data"
    }
  }
}

Я считаю, что это потому, что все зависимости обрабатываются как внешние, а ваш my-data не устанавливается черезчто-то вроде npm, вам нужно объявить ожидаемый идентификатор модуля UMD.См https://github.com/ng-packagr/ng-packagr/blob/master/docs/dependencies.md#resolving-umd-module-identifiers

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