ошибка TS5023: неизвестная опция компилятора enableIvy

Я пытаюсь добавить IVY в мой бета-проект angular 7. Итак, я добавил enableIvy: true к src/tsconfig.app.json в разделе compilerOptions

Но когда я запускаю ng build --prod --aot --output-hashing none, я получаю ошибку ниже.

error TS5023: Unknown compiler option 'enableIvy'.

Error: error TS5023: Unknown compiler option 'enableIvy'.

    at AngularCompilerPlugin._setupOptions (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:112:19)
    at new AngularCompilerPlugin (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:61:14)
    at _createAotPlugin (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/typescript.js:41:12)
    at Object.getAotConfig (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/typescript.js:63:19)
    at BrowserBuilder.buildWebpackConfig (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/src/browser/index.js:81:37)
    at MergeMapSubscriber.rxjs_1.of.pipe.operators_1.concatMap [as project] (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/src/browser/index.js:31:38)
    at MergeMapSubscriber._tryNext (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/operators/mergeMap.js:65:27)
    at MergeMapSubscriber._next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/operators/mergeMap.js:55:18)
    at MergeMapSubscriber.Subscriber.next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/Subscriber.js:64:18)
    at TapSubscriber._next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/operators/tap.js:62:26)
    at TapSubscriber.Subscriber.next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/Subscriber.js:64:18)
    at MergeMapSubscriber.notifyNext (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/operators/mergeMap.js:84:26)
    at InnerSubscriber._next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/InnerSubscriber.js:25:21)
    at InnerSubscriber.Subscriber.next (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/Subscriber.js:64:18)
    at ForkJoinSubscriber.notifyComplete (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/observable/forkJoin.js:79:25)
    at InnerSubscriber._complete (/Users/k26686/aniruddh/develop/experiment/shepherd/node_modules/@angular-devkit/build-angular/node_modules/rxjs/internal/InnerSubscriber.js:32:21)

Любой решил это.


person Aniruddha Das    schedule 14.09.2018    source источник


Ответы (3)


попробуйте включить опцию enableIvy в angularCompilerOptions

"angularCompilerOptions": {
   "enableIvy": true
}
person usha    schedule 18.09.2018
comment
Пожалуйста, ознакомьтесь с рекомендациями Stack Overflow о том, как писать хорошие ответы: stackoverflow.com/help/how-to-answer< /а> - person Alberto; 18.09.2018

compilerOptions и angularCompilerOptions — это два отдельных свойства в tsconfig.json. Вам нужно добавить "enableIvy": true к angularCompilerOptions, а не compilerOptions:

tsconfig.json:

{
  "compilerOptions": {
  ....
  },
  "angularCompilerOptions": {
    "enableIvy": true
  }
}
person dasfdsa    schedule 27.04.2019

Теперь правильный путь установлен

"angularCompilerOptions": {
   "enableIvy": "ngtsc"
}

это связано с проблемой #23455

Эта фиксация добавляет новый конвейер компилятора, который не зависит от глобального анализа и называется ngtsc. Доступ к этому новому компилятору можно получить, запустив ngc с параметром enableIvy, установленным на «ngtsc». Он повторно использует ту же логику инициализации, но создает новую реализацию Program, которая не выполняет анализ глобального уровня, который делает AngularCompilerProgram. Он станет основой для производственного компилятора Ivy.

person Kliment Ru    schedule 19.12.2018
comment
Теперь оба способа true и ngtsc должны работать github.com/angular/angular/pull/27306 - person yurzui; 19.12.2018