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

时间:2021-05-07 11:11:49

标签: angular web npm

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

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.

我确实尝试了所有方法,我更新了 npm,再次安装了 Angular cli,再次下载并安装了 nodenpm audit 以及许多其他事情,但没有任何反应。

此外,如您所见,错误告诉我将命令与 --force 一起使用,我尝试过但没有任何反应,而使用 --legacy-peer-deps,我将错误视为未知选项。

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

11 个答案:

答案 0 :(得分:105)

打开您使用 ng new 创建的文件夹并打开 package.json 文件。在 devDependencies 中,将“jasmine-core”3.6.0 的版本更改为 3.7.1,将“karma-jasmine-html-reporter”的版本从 1.5.0 更改为 1.6.0 并保存它。然后返回终端并转到您的项目并运行 npm install。现在它可以运行了,您可以运行 ng serve

答案 1 :(得分:5)

我的是 angular-cli v11.2.12 的临时解决方案,基于@david-Öztürk 的回答以及 this angular-cli github issue discussionsits merged fix

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

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

ng new --skip-install <project-name>

进入项目目录:

cd <project-name>

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

"karma-jasmine-html-reporter": "^1.5.0",

...至此:

"karma-jasmine-html-reporter": "~1.5.0",

手动安装 npm 包:

npm install

答案 2 :(得分:5)

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

这是我的 devDependecies 在 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"
  }

答案 3 :(得分:3)

他们在几个小时前发布了 Karma Jasmine html 报告器。这可能是破坏代码的原因。 The update is most likely the cause.

您应该更改 package.json 并获取旧版本的 Karma Jasmine older version

答案 4 :(得分:3)

似乎是最新的 NPM 7.12.0 和最新的 Node 16.1.0(当前版本)

的问题

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

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

答案 5 :(得分:3)

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

npm install -g npm@6.14.12

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

ng new <MyProjet>

答案 6 :(得分:1)

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

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

可选: npm i 更新节点

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

答案 7 :(得分:0)

我在我的项目目录中使用这个命令解决了这个问题:

  1. npm install --save-dev @angular-devkit/build-angular --force
  2. npm 审计修复 --force

然后我使用“ng serve”运行我的项目

答案 8 :(得分:0)

错误详情之后 ng new my-app

npm 错误!无法解析依赖:

npm 错误! peer jasmine-core@">=3.7.1" 来自 karma-jasmine-html-reporter@1.6.0

修复细节

  1. sudo npm install -g npm@7.13.0 => 将 npm 从 7.10.0 更新为 7.13.0
  2. 仅将 package.json 中的 "jasmine-core"3.6.0 更改为 3.7.1,即 "jasmine-core": "~3.7.1",
  3. npm install

此后没有发现任何问题,我能够执行 ng buildng serve

我保留的其他设置: "@types/jasmine": "~3.6.0", "jasmine-spec-reporter": "~5.0.0",

答案 9 :(得分:0)

如果您在尝试上述部分/全部选项后仍然遇到此问题,只需将 npm 版本从 7 降级到 6:npm install -g npm@6

答案 10 :(得分:0)

编辑项目文件夹中的 {x: red, y: 2} {x: blue, y: 7} #the two blue y variables have been added {x: green, y: 5}

"jasmine-core": "~3.7.0" 到 "jasmine-core": "~3.8.0", "karma-jasmine-html-reporter": "^1.5.0" 到 "karma-jasmine-html-reporter": "^1.6.0"

在您的项目文件夹中运行 package.json 后。