无法解决创建新角度项目的依赖树错误

Nim*_*tan 79 npm web angular

所以今天我想使用该命令创建一个新的 Angular 项目ng new <projectname>,但出现此错误:

npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: project-name@0.0.0
npm ERR! Found: jasmine-core@3.6.0
npm ERR! node_modules/jasmine-core
npm ERR!   dev jasmine-core@"~3.6.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer jasmine-core@">=3.7.1" from karma-jasmine-html-reporter@1.6.0
npm ERR! node_modules/karma-jasmine-html-reporter
npm ERR!   dev karma-jasmine-html-reporter@"^1.5.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
Run Code Online (Sandbox Code Playgroud)

我真的什么都试过,我更新了npm,装Angular cli一次,下载并安装了node一遍,npm audit和很多其他的东西,但什么都没有发生。

此外,正如您所看到的,错误告诉我使用命令 with --force,我尝试过但没有发生任何事情,而使用--legacy-peer-deps,我将错误显示为未知选项。

最让我烦恼的是昨晚一切正常,我什么都没做,但今天突然出现了这个错误。

小智 138

打开您使用 ng new 创建的文件夹并打开package.json文件。在devDependencies更改版本“茉莉花核”的3.6.03.7.1和“报应-茉莉HTML的记者”从1.5.01.6.0并保存。然后返回终端并转到您的项目并运行npm install. 现在它可以工作了,您可以运行ng serve.

  • 不是更实际。需要 jasmine-core 版本 3.8.0 (20认同)
  • 知道我是否可以更改/修复此问题以防止出现这种情况,或者这是一个 cli 错误吗?当你必须通过 google 解决方法来创建 Angular hello world 项目时,情况非常糟糕。 (8认同)
  • 在项目开始时出现错误,这确实是一种耻辱,而你不对此负责!对于初学者来说真的很可怕! (5认同)
  • 它对我有用,谢谢,但我认为这样的错误是不可接受的:) (4认同)
  • 我遇到这个问题已经有一段时间了,但我已经在 jasmine-core 3.7.1 了。相反,我不得不使用 `npm i --legacy-peer-deps` 去任何地方。今天我发现 jasmine-core 3.8.0 可用,这终于为我解决了这个问题。 (2认同)
  • 解决了 "jasmine-core": "~3.8.0" 和 "karma-jasmine-html-reporter": "^1.7.0", (2认同)

Iog*_*gui 11

我的是基于@大卫- Öztürk的答案,对角CLI v11.2.12暂时解决这个角CLI GitHub的问题进行讨论,并在其合并后的修复

通过执行@david-Öztürk 回答中列出的步骤,我仍然遇到相同的错误。而且该修复比建议的解决方案更保守。我希望它可以帮助别人:

在没有自动安装 npm 包的情况下运行 Angular 项目创建:

ng new --skip-install <project-name>
Run Code Online (Sandbox Code Playgroud)

进入项目目录:

cd <project-name>
Run Code Online (Sandbox Code Playgroud)

编辑package.json并更改此...

"karma-jasmine-html-reporter": "^1.5.0",
Run Code Online (Sandbox Code Playgroud)

...到这个:

"karma-jasmine-html-reporter": "~1.5.0",
Run Code Online (Sandbox Code Playgroud)

手动安装 npm 包:

npm install
Run Code Online (Sandbox Code Playgroud)


Max*_* GH 8

我遇到了同样的问题,我通过重新安装 nodeJs 14.16.1 解决了它,但是我不得不使用命令手动更改 npm 的版本

npm install -g npm@6.14.12
Run Code Online (Sandbox Code Playgroud)

当然之后,我通过创建一个项目来测试修改

ng new <MyProjet>
Run Code Online (Sandbox Code Playgroud)


小智 8

它对我有用的是手动更新 package.json 看起来像这样

"jasmine-core": "~3.8.0",
"karma-jasmine-html-reporter": "^1.7.0"
Run Code Online (Sandbox Code Playgroud)

然后我尝试了

npm install
Run Code Online (Sandbox Code Playgroud)

但也没有用,所以我尝试了

npm install --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)

然后一切又恢复正常了我可以 npm start像往常一样做


Mah*_*h B 6

看起来像最新的NPM 7.12.0和最新的Node 16.1.0(当前版本)的问题

就我而言,我遵循以下步骤 -

  1. 卸载节点
  2. 重新安装最新节点 ( LTS: 14.16.1)
    • 哪个将安装最新的 NPM : 6.14.12
  3. 跑过 ng new my-app

  • 谢谢!奇迹般有效。我使用 nvm,所以我的步骤是:“nvm install --lts”,然后重新安装 Angular“npm install -g @angular/cli”,它工作得很好 (2认同)

小智 6

如果您仍然面临此问题,请尝试确保您的package.json所有版本都与其他支持库版本匹配。的jasmine-core必须是大于3.8karma-jasmine-html-report 1.7+

这是我的 devDependencies 在 package.json 中的样子

"devDependencies": {
    "@angular-devkit/build-angular": "~12.0.0",
    "@angular/cli": "~12.0.0",
    "@angular/compiler-cli": "~12.0.0",
    "@types/jasmine": "~3.6.0",
    "@types/node": "^12.11.1",
    "jasmine-core": "~3.8.0",
    "karma": "~6.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.7.0",
    "typescript": "~4.2.3"
  }
Run Code Online (Sandbox Code Playgroud)


Cae*_*ius 5

安装节点(如果没有)或更新到最新版本: https://nodejs.org/en/download/package-manager/

更新你的 npm: npm install npm@latest -g

可选: npm i 更新节点

这会将 Angular 更新到最新版本: npm install -g @angular/cli 创建一个新的 Angular 项目: ng new projectName 更改项目名称目录: cd projectName 服务项目 ng s


小智 5

您可以全局更新 Angular cli:npm update @angular/cli -g