Как создать Angular 9 проект с IVY? - PullRequest
0 голосов
/ 20 февраля 2020

Как создать Angular 9 проект с IVY?

Я попробовал следующее:

ng new sample9prjivy --enable-ivy

Моя среда:

Angular CLI: 9.0.2

Узел: 12.16.0

ОС: win32 x64

Angular: ... Рабочая область плюща:

Пакет и версия

@ angular -devkit / architect 0.900.2

@ angular -devkit / core 9.0.2

@ angular -devkit / schematics 9.0.2

@ schematics / angular 9.0.2

@ schematics / update 0.900.2

rx js 6.5. 3

C: \ src \ Angular \ pilot \ A9> ng new sample9prjivy --enable-ivy

Неизвестный параметр: '--enable-ivy'

Что я пропустил?

1 Ответ

1 голос
/ 20 февраля 2020
  1. Как пытался объяснить более ранний автор, нет такого флага "ng new", как --enable-ivy.

  2. Как объяснил выше andrewjames, тег "плющ" неверен. Вы хотите "angular -ivy". Я исправил это для тебя.

  3. Если вы хотите включить Ivy для более старых Angular сборок, прочитайте эту ветку: Как включить Ivy для Angular 8 или 9? . Вам нужно будет отредактировать tsconfig.json и angular.json.

  4. Похоже, что Ivy теперь используется по умолчанию для Angular 9:

https://angular.io/guide/ivy

Ivy - это кодовое имя для Angular конвейера компиляции и рендеринга следующего поколения . С версией 9 Angular новые инструкции компилятора и среды выполнения используются по умолчанию вместо старого компилятора и среды выполнения, известных как View Engine.

Как обсуждается в документации, есть IS флаг для enableIvy ... но он установлен в tsconfig.app.json. Это НЕ параметр командной строки для "ng new".

Обновление:

Ответ на ОП Исходный вопрос: вам не нужно «создавать проект Angular 9 с Ivy»: в Angular 9 Ivy должен быть включен по умолчанию.

Чтобы ответить на следующий вопрос о NG6002: смотрите здесь (уже цитируется ниже):

Последнее предложение: это не помешает:

  1. Обновить Angular: ng update @angular/cli @angular/core
  2. Создать новый проект и скопировать старый источник в новый проект

Другое обновление

  1. Исходная проблема: ng new sample9prjivy --enable-ivy =>

Неизвестный параметр: '--enable-ivy'

Причина: --enable-ivy просто не является допустимой опцией "ng" с Angular 9. Не делайте этого!

Следующая проблема: I always got more error NG6002

Это известная проблема, при которой существующие проекты обновляются до Angular 9. Смотрите здесь и здесь, Основная проблема c заключается в том, что «обновление» проекта может привести к «несоответствиям». Обе ссылки предлагают обходные пути; Я также предложил некоторые обходные пути. Я не знаю, пробовали ли вы еще что-нибудь из них: (

ТЕКУЩЕЕ ПРЕДЛОЖЕНИЕ:

Поскольку вы, кажется, не добились большого прогресса, я предложил бы следующее:

a) UNINSTALL Angular: получите «чистую версию»:

npm uninstall -g @angular/cli
npm cache clean
npm cache verify
npm install -g @angular/cli

b) Подтвердите «чистую установку» из Angular 9:

ng --version
...
Angular CLI: 9.0.3
Node: 10.15.1
OS: win32 x64

Angular:
...
Ivy Workspace:

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.900.3
@angular-devkit/core         9.0.3
@angular-devkit/schematics   9.0.3
@schematics/angular          9.0.3
@schematics/update           0.900.3
rxjs                         6.5.3

c) Создайте новый проект с вашей "заведомо удачной" Angular установкой.

Выполните НЕ change ЛЮБАЯ конфигурация! НЕ попробуйте явно "включить Ivy"!

d) Скопируйте ваш старый исходный код ( ТОЛЬКО исходный код проекта!) В ваш новый проект.

e) Убедитесь, что «все работает».

f) Отправьте обратно то, что вы нашли.

...