无法在 Angular 中创建新项目:棘手的依赖问题

Can't create new project in Angular: tsickle dependency problem

我已经安装:

我 运行 使用 Windows 10,64 位。

我正在尝试通过 运行 创建我的第一个项目:

ng new angular-demo

其中“angular-demo”是项目名称。该命令创建一个包含一些初始文件的项目目录,然后它运行 npm 并失败并在日志文件中显示以下消息

67 verbose argv "W:\nodejs\node.exe" "C:\Users\Tomasz\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "install" "--quiet"
68 verbose node v15.6.0
69 verbose npm  v7.5.0
70 error code ERESOLVE
71 error ERESOLVE unable to resolve dependency tree
72 error
73 error While resolving: angular-demo@0.0.0
73 error Found: typescript@4.1.3
73 error node_modules/typescript
73 error   peer typescript@"~4.0.0 || ~4.1.0" from @angular-devkit/build-angular@0.1101.2
73 error   node_modules/@angular-devkit/build-angular
73 error   peer typescript@">=4.0 <4.2" from @angular/compiler-cli@11.1.1
73 error   node_modules/@angular/compiler-cli
73 error     peer @angular/compiler-cli@"^11.0.0 || ^11.1.0-next" from @angular-devkit/build-angular@0.1101.2
73 error     node_modules/@angular-devkit/build-angular
73 error     peer @angular/compiler-cli@"11.1.1" from @angular/localize@11.1.1
73 error     node_modules/@angular/localize
73 error       peerOptional @angular/localize@"^11.0.0 || ^11.1.0-next" from @angular-devkit/build-angular@0.1101.2
73 error       node_modules/@angular-devkit/build-angular
73 error     1 more (ng-packagr)
73 error   1 more (ng-packagr)
73 error
73 error Could not resolve dependency:
73 error peer typescript@"~3.9.5" from tsickle@0.39.1
73 error node_modules/tsickle
73 error   peerOptional tsickle@"~0.39.0" from ng-packagr@11.1.2
73 error   node_modules/ng-packagr
73 error     peerOptional ng-packagr@"^11.0.0 || ^11.1.0-next" from @angular-devkit/build-angular@0.1101.2
73 error     node_modules/@angular-devkit/build-angular

我谷歌了一下,发现 tsickle 是一些与 typescript 相关的工具,它只支持 typescript 版本最多 3,而不是 4。我不知道为什么 angular 试图安装这个 typescript 的组合版本和痒痒。

这是依赖冲突,因为它说打字稿版本有问题。 但即使出现此错误,也会创建一个项目文件夹。 你可以运行

npm install --force

来自生成 package.json 文件和初始文件的项目目录的命令。对于你的情况 运行 angular-demo 目录下的命令

我在 nodejs 15.8.0 (npm 7.5.1) 中遇到了类似的错误。

当我卸载它并安装 LTS 版本 的 nodejs(当前为 14.15.4 和 npm 6.14.10)时,一切正常。 打开 https://nodejs.org/en/download/ 和 select LTS 最新版本。

对我有用的解决方案是@ypolonsky 提出的解决方案的组合...但我又添加了一个步骤。解决方案是卸载所有东西(甚至是手动全局节点模块),然后重新安装 Node。

我正在 Windows 10 机器上工作,接下来的步骤为我解决了这个问题:

  1. 首先将C:\Users\your_user\AppData\Roaming\npm里面的内容全部删除。此步骤是必需的,因为此内容不会在卸载过程中自动删除。
  2. 然后,卸载 Node(您可以从控制面板卸载)
  3. 打开 https://nodejs.org/en/download/ 和 select LTS 最新版本(由 ypolonsky 建议)
  4. 安装节点
  5. 安装 Angular cli:npm install -g @angular/cli
  6. 再次测试创建一个新的 Angular 项目,它应该可以工作(这个过程需要一些时间,所以请耐心等待):ng new my-app

在我的例子中,问题可能是我很长时间没有更新 Node,而且我也一直在对我的全局包进行大量更新(使用 ncu 命令),因此需要全新安装.

这个 post 帮助我找到了如何删除我的节点全局模块:Command to remove all npm modules globally?