Как разместить два независимых друг от друга приложения на Angular4

228
22 августа 2017, 15:22

Если добавить на страницу собранное приложение после тега <app-one>, с тегом <app-two>, и добавить бандлы приложения 2, то при запуске вылетает ошибка

Uncaught Error: Zone already loaded.

Как добавить на одну страницу два разных приложения Angular4 чтобы они не конфликтовали? Сильно ли это скажется на производительности?

Answer 1

все, понял... поковырявшись в интеренатах понял, что это можно реализовать только при помощи сборщика SystemJS, вот линк, хотя люди тоже жалуются на похожую ошибку (https://blog.sstorie.com/bootstrapping-multiple-angular-2-applications-on-the-same-page/).

Если использовать angular-cli, то там добавлена только возможность отдельно создавать два приложения, но не запусктаь и билдить одновременно (https://github.com/angular/angular-cli/wiki/stories-multiple-apps).

Так что надо голосовать за эту фичу (https://github.com/angular/angular-cli/issues/6428)

.angular-cli.json

"apps": [
{ "name":"app1",
  "root": "src",
  "outDir": "dist",
  "assets": [
    "assets",
    "favicon.ico"
  ],
  "index": "index.html",
  "main": "main-one.ts",
  "polyfills": "polyfills.ts",
  "test": "test.ts",
  "tsconfig": "tsconfig.app.json",
  "testTsconfig": "tsconfig.spec.json",
  "prefix": "app",
  "styles": [
    "styles.css",
   "../node_modules/@angular/material/core/theming/prebuilt/indigo-pink.css"
  ],
  "scripts": [],
  "environmentSource": "environments/environment.ts",
  "environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
  }
},
{ "name":"app2",
  "root": "src",
  "outDir": "dist2",
  "assets": [
    "assets",
    "favicon.ico"
  ],
  "index": "index.html",
  "main": "main-two.ts",
  "polyfills": "polyfills.ts",
  "test": "test.ts",
  "tsconfig": "tsconfig.app.json",
  "testTsconfig": "tsconfig.spec.json",
  "prefix": "app",
  "styles": [
    "styles.css",
  "scripts": [],
  "environmentSource": "environments/environment.ts",
  "environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
  }
}
],

структура:

src/
---/app1
---/app2

старт

ng serve --app app1
ng serve --app app2
READ ALSO
Как сделать, чтобы в таблице вместо координат выводило адрес маркера?

Как сделать, чтобы в таблице вместо координат выводило адрес маркера?

Есть подключенная карта гуглаПри клике на неё появляется маркер

178
Из Array в псевдомассив

Из Array в псевдомассив

Многие спрашивают, как NodeList, HTMLColletion и другой псевдомассив превратить в ArrayТак мне нужно наоборот

213
Баг функции удаления элемента

Баг функции удаления элемента

Есть функция, которая должна обновлять массив пользовательских данных удаляя из него элементПо onClik в функциональный элемент передаётся...

156
Отладка не работает в хроме [требует правки]

Отладка не работает в хроме [требует правки]

Запускаю любой код, но консоль ничего не отображаетТолько модальные окна работают

179