Импортировать 2 проекта Angular в другой проект javascript

У меня есть 2 отдельных проекта Angular. Для каждого из них я запускаю следующую команду CLI:

ng build --prod --output-hashing=none

Он создает следующие файлы для каждого проекта:

runtime.js polyfills.js main.js

Теперь я хочу импортировать проекты в другой проект, который представляет собой простой проект javascript (не проект Angular).

Я знаю, что порядок важен и что runtime.js и polyfills.js появляются дважды. Поэтому я убедился, что это одинаковые файлы (потому что я использую одну и ту же версию Angular в обоих проектах).

Импорт в простой проект javascript выглядит примерно так:

<script src="runtime.js"></script>
<script src="polyfills.js"></script>
<script src="main1.js"></script>
<script src="main2.js"></script>

К сожалению, похоже, что только один из проектов работает таким образом (и здесь нет исключений). Если я импортирую только main1.js или только main2.js, они будут работать правильно.

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

ОБНОВИТЬ:

Не уверен, что это актуально, но в каждом проекте Angular я использую @angular/elements для публикации необходимых мне компонентов. что-то вроде этого:

export class AppModule {
  constructor(private injector: Injector) {
    const elem = createCustomElement(MyFirstComponent, { injector });
    customElements.define('my-first-element', elem);
  }
  ngDoBootstrap() {}
}

Затем в проекте javascript я использую это так:

var elem1 = document.createElement('my-first-element');
container.append(elem1);
var elem2 = document.createElement('my-second-element');
container.append(elem2);

person EDalet    schedule 04.05.2020    source источник
comment
Итак, у вас есть несколько корневых приложений?   -  person MikeOne    schedule 04.05.2020
comment
Вообще-то, нет. Пожалуйста, смотрите обновление.   -  person EDalet    schedule 04.05.2020


Ответы (1)


Проверьте тег <app-root></app-root> в своем index.html. Вам может понадобиться 2 разных селектора для вашего AppComponent:

// app.component.ts for the first project
selector: 'app-root-one',


// app.component.ts for the second project
selector: 'app-root-two',
person aepifano    schedule 04.05.2020
comment
На самом деле я не использую селекторы корневого приложения. Пожалуйста, посмотрите обновление моего вопроса. - person EDalet; 04.05.2020