Что именно вызывает main.ts в Angular - PullRequest
0 голосов
/ 30 апреля 2018

Создавая базовый проект Angular CLI, мы получаем следующее index.html при запуске приложения:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>SimpleCLI</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
  <script type="text/javascript" src="inline.bundle.js"></script>
  <script type="text/javascript" src="polyfills.bundle.js">
  </script><script type="text/javascript" src="styles.bundle.js"></script>
  <script type="text/javascript" src="vendor.bundle.js"></script>
  <script type="text/javascript" src="main.bundle.js"></script></body>
</html>

Следующим шагом является наша точка входа main.ts . Конечно, имя не имеет значения и определяется в .angular-cli.json . Может ли кто-нибудь уточнить следующие моменты?

  • Это vendor.bundle.js, который содержит весь код Angular и отвечает за запуск процесса начальной загрузки?
  • Как только начинается процесс начальной загрузки как точно приложение знает, куда идти, а именно как оно запускает main.ts? Это только собственность

     "main": "main.ts"
    

    внутри .angular-cli.json что определяет это?

Ответы [ 4 ]

0 голосов
/ 28 мая 2019

В Angular 7 (проект Angular CLI) файл angular.json содержит всю информацию о проекте, которая содержит информацию обо всех активах проекта. В этом файле main может быть настроен на файл сценария любого типа, который затем может выступать в качестве начального модуля для настроенного приложения, как, например, start.ts. Теперь start.ts будет действовать как отправная точка для модуля приложения, который в идеале должен отвечать за загрузку приложения с помощью platformBrowserDynamic (). BootstrapModule (YourModuleStarter)

0 голосов
/ 30 апреля 2018
  1. Нет Vendor.bundle.js не содержит угловой код. Он содержит сторонние плагины, например. плагины начальной загрузки, jquery, jquery, которые мы включили в package.json. Он не отвечает за загрузку углового приложения.

  2. В main.ts последняя строка файла platformBrowserDynamic (). BootstrapModule (AppModule) отвечает за начальную загрузку углового приложения. platformBrowserDynamic () часть этой строки указывает, что мы собираемся загрузить Angular в среде браузера.

3. Функция bootstrapModule () помогает начальной загрузке нашего корневого модуля, принимая в качестве аргумента корневой модуль.

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

5. В нашем AppModule, нам нужно указать компонент, который будет служить компонентом точки входа для нашего приложения. В нашем файле app.module.ts , куда мы импортируем компонент ввода (обычно AppComponent) и предоставляем его в качестве единственного элемента в нашем массиве начальной загрузки внутри объекта конфигурации NgModule. например. самозагрузка [AppComponent]

0 голосов
/ 03 ноября 2018

main.bundle.js отвечает за запуск процесса начальной загрузки.

Он построен компилятором Angular на основе конфигурации, прочитанной из angular.json , где указано, что main.ts является основным файлом начальной загрузки.

0 голосов
/ 30 апреля 2018

Да, только angular-cli.json ссылается на него для обработки запуска приложения.

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

Единственное, что влияет на него как файл .ts, это tsconfig.json, который обрабатывает перенос в javascript. но это происходит по шаблону имени файла * .ts, а не по ссылке на файлы по отдельности.

...