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

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

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

ng new sample9prjivy --enable-ivy

Моя среда:

Угловой интерфейс командной строки: 9.0.2

Узел: 12.16.0

ОС: win32 x64

Angular: ... Рабочее пространство Ivy:

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

@ angular-devkit / архитектор 0.900.2

@ angular-devkit / ядро ​​9.0.2

@ angular-devkit / схемы 9.0.2

@ schematics / angular 9.0.2

@ schematics / update 0.900.2

rxjs 6.5.3

C: \ src \ Angular \ pilot \ A9> новый sample9prjivy --enable-ivy

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

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


person Laszlo    schedule 19.02.2020    source источник


Ответы (1)


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

  2. Как объяснил Эндрю Джеймс выше, тег «плющ» неверен. Вы хотите «угловатый плющ». Я починил это за тебя.

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

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

https://angular.io/guide/ivy

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

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

Обновление:

Ответ на исходный вопрос OP: вам не нужно «создавать проект 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 просто недопустима для Angular 9. Не делайте этого!

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

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

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

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

    а) УДАЛИТЬ Angular: получите "чистую версию":

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

    б) Подтвердите вашу «чистую установку» 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.

    НЕ меняйте ЛЮБУЮ конфигурацию! НЕ пытайтесь явно включить Ivy!

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

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

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

person FoggyDay    schedule 20.02.2020
comment
Я слежу за пошаговым руководством по включению IVY для старого приложения angular, но всегда получал ошибку NG6002 - person Laszlo; 22.02.2020
comment
1) Поскольку вы используете Angular 9, вы НЕ хотите выполнять какие-либо шаги, которые НЕ НАПРАВЛЯЮТСЯ для Angular 9. 2) Посмотрите здесь: github.com/angular/angular/issues/35399. По ссылке: 3) npm cache clean --force. 4) delete the top node_modules in the workspace (where you should have installed it), and rebuild libraries/apps.. См. Также: github.com/angular/angular/pull/35191 - person FoggyDay; 23.02.2020
comment
Знаю, но до А9 мой прдж был на А8. Теперь на A9 ошибок нет, но я включил enableIvy и allowEmptyCodegenFiles, у меня всегда было больше ошибок NG6002. Где я могу найти описание и причину ошибки NG6002? Спасибо - person Laszlo; 23.02.2020
comment
Вздох ... Вам не нужно ничего включать :( По крайней мере, если вы начинаете с совершенно нового проекта Angular 9. Что касается NG6002, посмотрите мои ссылки. Проблема, похоже, в конфликтах. Идеальное решение - начните с чистого листа. Смотрите мои обновления выше. - person FoggyDay; 23.02.2020
comment
Изначально я начал обновлять свой проект с A8 до A9. После этого я включил enableIvy и allowEmptyCodegenFiles, у меня всегда появлялась ошибка NG6002. Когда мне всегда приходила в голову упомянутая ошибка, если я создаю новый проект A9 с IVY и перемещаю содержимое моего старого проекта, это тоже может быть хорошо, это вдохновляет меня на то, как я могу создать новый проект A9 с использованием IVY. - person Laszlo; 23.02.2020
comment
Пожалуйста, 1) Прочтите ссылки, которые я процитировал, 2) Посмотрите мои обновления, 3) Перезапустите свой проект с чистой установки Angular 9 и чистого проекта Angular 9. - person FoggyDay; 24.02.2020