如何修复目录导入"@angular-devkit\build-angular\src\dev-server"不支持在将 Angular 更新到版本 13 后解析 ES 模块



当运行ng serve时,我在更新角度版本后收到以下错误:

An unhandled exception occurred: Directory import 'C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angular-devkitbuild-angularsrcdev-server' is not supported 
resolving ES modules imported from C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angularclinode_modules@angular-devkitarchitectnodenode-modules-architect-host.js
Did you mean to import C:/Users/xxx/Documents/desktop-server-client-app/desktop/server/client/node_modules/@angular-devkit/build-angular/src/dev-server/index.js?
See "C:UsersxxxAppDataLocalTempng-TMJqg5angular-errors.log" for further details.

日志输出:

[error] Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import 'C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angular-devkitbuild-angularsrcdev-server' is not supported resolving ES modules imported from C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angularclinode_modules@angular-devkitarchitectnodenode-modules-architect-host.js
Did you mean to import C:/Users/xxx/Documents/desktop-server-client-app/desktop/server/client/node_modules/@angular-devkit/build-angular/src/dev-server/index.js?
at finalizeResolution (internal/modules/esm/resolve.js:272:17)
at moduleResolve (internal/modules/esm/resolve.js:699:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
at Loader.resolve (internal/modules/esm/loader.js:85:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:229:28)
at Loader.import (internal/modules/esm/loader.js:164:28)
at importModuleDynamically (internal/modules/cjs/loader.js:1006:27)
at exports.importModuleDynamicallyCallback (internal/process/esm_loader.js:30:14)
at eval (eval at loadEsmModule (C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angularclinode_modules@angular-devkitarchitectnodenode-modules-architect-host.js:195:12), <anonymous>:3:1)
at loadEsmModule (C:UsersxxxDocumentsdesktop-server-client-appdesktopserverclientnode_modules@angularclinode_modules@angular-devkitarchitectnodenode-modules-architect-host.js:195:68)

有人能向我解释一下这个错误意味着什么,以及我该如何修复它吗?在我看来,这是一种兼容性问题,我对此无能为力。到目前为止,我的angular项目只包含一些样板代码,所以这应该不是问题所在。

编辑:我的版本如下:

Node: 14.15.0
npm: 6.14.8
Angular: 13.2.4
@angular-devkit/architect: 0.1202.16
@angular-devkit/build-angular: 12.2.16
@angular-devkit/core: 12.2.16
@angular-devkit/schematics: 13.2.5
@angular/cdk: 12.2.13
@angular/cli: 13.2.5
@angular/material: 12.2.13
@schematics/angular: 13.2.5
rxjs: 6.6.7
typescript: 4.5.5

我遇到这个问题是因为我使用--legacy-peer-deps标志将我的项目更新为Angular 13。因此,package.json中仍然存在旧的依赖关系。

请确保您有关于抛出错误的适当包版本。在您的确切情况下,尝试更改

"@angular-devkit/build-angular": "~12.2.16""@angular-devkit/build-angular": "~13.2.5"

然后运行CCD_ 6。

最新更新