所以今天我想使用命令 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
,再次下载并安装了 node
,npm audit
以及许多其他事情,但没有任何反应。
此外,如您所见,错误告诉我将命令与 --force
一起使用,我尝试过但没有任何反应,而使用 --legacy-peer-deps
,我将错误视为未知选项。
最让我烦恼的是昨晚一切正常,我什么都没做,但今天突然出现这个错误。
答案 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 discussions 和 its 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.8 和 karma-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(当前版本)
的问题就我而言,我遵循以下步骤 -
LTS: 14.16.1
)
NPM : 6.14.12
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)
我在我的项目目录中使用这个命令解决了这个问题:
然后我使用“ng serve”运行我的项目
答案 8 :(得分:0)
错误详情之后
ng new my-app
npm 错误!无法解析依赖:
npm 错误! peer jasmine-core@">=3.7.1" 来自 karma-jasmine-html-reporter@1.6.0
修复细节
sudo npm install -g npm@7.13.0
=> 将 npm 从 7.10.0
更新为 7.13.0
"jasmine-core"
从 3.6.0
更改为 3.7.1
,即 "jasmine-core": "~3.7.1",
npm install
此后没有发现任何问题,我能够执行 ng build
和 ng 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
后。