11

升级@angular/core@angular/material使用ng update命令后,ngcc命令失败并出现以下错误

使用的命令:

ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points

错误:

> Compiling @angular/cdk/stepper : es2015 as esm2015
> Compiling @angular/cdk/drag-drop : es2015 as esm2015
> Error: Error on worker #3: Error: Tried to overwrite node_modules/@angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak with an ngcc back up file, which is disallowed.
>     at NewEntryPointFileWriter.InPlaceFileWriter.writeFileAndBackup (node_modules/@angular/compiler-cli/ngcc/src/writing/in_place_file_writer.js:37:23)
>     at NewEntryPointFileWriter.writeFile (node_modules/@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer.js:64:53)
>     at node_modules/@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer.js:46:69
>     at Array.forEach (<anonymous>)
>     at NewEntryPointFileWriter.writeBundle (node_modules/@angular/compiler-cli/ngcc/src/writing/new_entry_point_file_writer.js:46:30)
>     at ClusterWorker.compile (node_modules/@angular/compiler-cli/ngcc/src/main.js:173:32)
>     at Worker.<anonymous> (node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/worker.js:44:42)
>     at Worker.emit (events.js:321:20)
>     at process.<anonymous> (internal/cluster/worker.js:32:12)
>     at process.emit (events.js:321:20)
>     at ClusterMaster.onWorkerMessage (node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:158:27)
>     at node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:46:95
>     at ClusterMaster.<anonymous> (node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:238:57)
>     at step (node_modules/tslib/tslib.js:136:27)
>     at Object.next (node_modules/tslib/tslib.js:117:57)
>     at node_modules/tslib/tslib.js:110:75
>     at new Promise (<anonymous>)
>     at Object.__awaiter (node_modules/tslib/tslib.js:106:16)
>     at EventEmitter.<anonymous> (node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:232:32)
>     at EventEmitter.emit (events.js:321:20)
4

3 回答 3

13

升级到 Angular 9 并重新安装所有包/依赖项后,请务必清理您的工作区。它实际上解决了我的大部分错误。

通过删除 node_modules 文件夹、package_lock.json 并通过npm install解决大部分问题重新安装所有包来清理工作区

  • 删除您的node_modules文件夹
  • 删除package_lock.json
  • 删除后重新安装软件包npm install
于 2020-02-08T23:09:33.267 回答
7

关闭enableIvy,对我有用。

tsconfig文件,在angularCompilerOptions

添加"enableIvy": false

于 2020-04-30T14:38:47.413 回答
0

就我而言,我使用npm link命令在消费者应用程序中使用了 Angular 11 库。

npm start我在消费者应用程序中运行时遇到错误。对我来说,解决方法是在图书馆的tsconfig.json(以前是“假的”)。

angularCompilerOptions": 
{
    "enableIvy": true 
}

有趣的是,这个修复与@Ahmed El-Araby 上面提到的 Angular 9 的修复相反,可能是因为在 Angular 11 中,Ivy 默认启用

于 2021-10-19T03:10:58.400 回答