试图用 ngcc 备份文件覆盖 @angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak,这是不允许的
Tried to overwrite @angular/cdk/stepper/step-header.d.ts.__ivy_ngcc_bak with an ngcc back up file, which is disallowed
使用 ng update
命令升级 @angular/core
和 @angular/material
后,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)
确保在升级到 angular 9 后清理您的工作区并重新安装所有 packages/dependencies。它实际上解决了我的大部分错误。
通过删除 node_modules 文件夹清理工作区,package_lock.json 并通过 npm install
重新安装所有包解决了大部分问题
- 删除您的
node_modules
文件夹
- 删除
package_lock.json
- 使用
npm install
删除后重新安装包
关闭 enableIvy
对我有用。
来自 tsconfig
文件,在 angularCompilerOptions
下
添加"enableIvy": false
在我的例子中,我使用 npm link
命令在消费者应用程序中使用了一个 Angular 11 库。
我在消费者应用程序中收到错误 运行 npm start
。
对我来说,修复是在库的 tsconfig.json
中(之前是“错误的”)。
angularCompilerOptions":
{
"enableIvy": true
}
有趣的是,此修复与@Ahmed El-Araby 上面提到的 Angular 9 的修复相反,可能是因为在 Angular 11 Ivy 中默认启用
使用 ng update
命令升级 @angular/core
和 @angular/material
后,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)
确保在升级到 angular 9 后清理您的工作区并重新安装所有 packages/dependencies。它实际上解决了我的大部分错误。
通过删除 node_modules 文件夹清理工作区,package_lock.json 并通过 npm install
重新安装所有包解决了大部分问题
- 删除您的
node_modules
文件夹 - 删除
package_lock.json
- 使用
npm install
删除后重新安装包
关闭 enableIvy
对我有用。
来自 tsconfig
文件,在 angularCompilerOptions
添加"enableIvy": false
在我的例子中,我使用 npm link
命令在消费者应用程序中使用了一个 Angular 11 库。
我在消费者应用程序中收到错误 运行 npm start
。
对我来说,修复是在库的 tsconfig.json
中(之前是“错误的”)。
angularCompilerOptions":
{
"enableIvy": true
}
有趣的是,此修复与@Ahmed El-Araby 上面提到的 Angular 9 的修复相反,可能是因为在 Angular 11 Ivy 中默认启用