无法解析依赖项:npm ERR!同行@angular/compiler@“11.2.8”
Could not resolve dependency: npm ERR! peer @angular/compiler@"11.2.8"
我正在尝试让我的应用程序部署到 Heroku 上。我收到“sh: 1: ng: not found”错误,但根据此处的回复,我移动了我的@angular/cli、@angular-devkit/build-angular、@angular/compiler-cli 和打字稿。现在我收到“无法解析依赖关系:npm ERR!peer @angular/compiler@"11.2.8"" 错误。我认为它有版本控制问题?我不确定发生了什么。
我试过 运行 'npm update' 并尝试手动插入 '@angular/compiler@"11.2.8"' 到依赖项然后 运行 'npm i' 但都给我同样的错误。
这是我的错误:
npm ERR! Found: @angular/compiler@11.0.9
npm ERR! node_modules/@angular/compiler
npm ERR! @angular/compiler@"~11.0.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/compiler@"11.2.8" from @angular/compiler-cli@11.2.8
npm ERR! node_modules/@angular/compiler-cli
npm ERR! dev @angular/compiler-cli@"^11.0.9" from the root project
npm ERR! peer @angular/compiler-cli@"^11.0.0" from @angular-devkit/build-angular@0.1100.7
npm ERR! node_modules/@angular-devkit/build-angular
npm ERR! @angular-devkit/build-angular@"~0.1100.2" from the root project
Package.json:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"postinstall": "ngcc"
},
"private": true,
"dependencies": {
"@angular-devkit/build-angular": "~0.1100.2",
"@angular/animations": "~11.0.1",
"@angular/cdk": "^11.2.6",
"@angular/cli": "~11.0.2",
"@angular/common": "~11.0.1",
"@angular/compiler": "~11.0.1",
"@angular/core": "~11.0.1",
"@angular/flex-layout": "^11.0.0-beta.33",
"@angular/forms": "~11.0.1",
"@angular/material": "^11.2.6",
"@angular/platform-browser": "~11.0.1",
"@angular/platform-browser-dynamic": "~11.0.1",
"@angular/router": "~11.0.1",
"angular-in-memory-web-api": "^0.11.0",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"typescript": "~4.0.2",
"uuid": "^3.4.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1100.2",
"@angular/cli": "~11.0.2",
"@angular/compiler-cli": "^11.0.9",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.1.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~4.0.2"
}
如何解决这个错误?
听起来像是 Peer Dependencies 的问题尝试 npm install --legacy-peer-deps
。
除了使用 npm install --save --legacy-peer-deps
命令行选项外,还可以将其更永久地设置为配置选项:
npm config set legacy-peer-deps true
.
如果上述方法不起作用,请尝试删除 node_modules
文件夹和 package-lock.json
文件以及 运行 命令 npm install
.
Use of legacy-peer-deps
is not recommended, as it will not enforce the peerDependencies
contract that meta-dependencies may rely on.
为了尝试遵循 npm 的建议,我没有设置 --legacy-peer-deps
,而是检查了 package-lock.json 并注意到 devDependencies(对于 Angular-related 包) 仍然引用旧版本(在我的例子中是 13.0.1,升级到 13.2.0)。
我只是删除了 package-lock.json 和 运行 npm install
并安装了 ng update @angular/cli @angular/core
所做的更新(到 package.json).
也没有必要删除 node_modules。
我正在尝试让我的应用程序部署到 Heroku 上。我收到“sh: 1: ng: not found”错误,但根据此处的回复,我移动了我的@angular/cli、@angular-devkit/build-angular、@angular/compiler-cli 和打字稿。现在我收到“无法解析依赖关系:npm ERR!peer @angular/compiler@"11.2.8"" 错误。我认为它有版本控制问题?我不确定发生了什么。
我试过 运行 'npm update' 并尝试手动插入 '@angular/compiler@"11.2.8"' 到依赖项然后 运行 'npm i' 但都给我同样的错误。
这是我的错误:
npm ERR! Found: @angular/compiler@11.0.9
npm ERR! node_modules/@angular/compiler
npm ERR! @angular/compiler@"~11.0.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/compiler@"11.2.8" from @angular/compiler-cli@11.2.8
npm ERR! node_modules/@angular/compiler-cli
npm ERR! dev @angular/compiler-cli@"^11.0.9" from the root project
npm ERR! peer @angular/compiler-cli@"^11.0.0" from @angular-devkit/build-angular@0.1100.7
npm ERR! node_modules/@angular-devkit/build-angular
npm ERR! @angular-devkit/build-angular@"~0.1100.2" from the root project
Package.json:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"postinstall": "ngcc"
},
"private": true,
"dependencies": {
"@angular-devkit/build-angular": "~0.1100.2",
"@angular/animations": "~11.0.1",
"@angular/cdk": "^11.2.6",
"@angular/cli": "~11.0.2",
"@angular/common": "~11.0.1",
"@angular/compiler": "~11.0.1",
"@angular/core": "~11.0.1",
"@angular/flex-layout": "^11.0.0-beta.33",
"@angular/forms": "~11.0.1",
"@angular/material": "^11.2.6",
"@angular/platform-browser": "~11.0.1",
"@angular/platform-browser-dynamic": "~11.0.1",
"@angular/router": "~11.0.1",
"angular-in-memory-web-api": "^0.11.0",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"typescript": "~4.0.2",
"uuid": "^3.4.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.1100.2",
"@angular/cli": "~11.0.2",
"@angular/compiler-cli": "^11.0.9",
"@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.1.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~4.0.2"
}
如何解决这个错误?
听起来像是 Peer Dependencies 的问题尝试 npm install --legacy-peer-deps
。
除了使用 npm install --save --legacy-peer-deps
命令行选项外,还可以将其更永久地设置为配置选项:
npm config set legacy-peer-deps true
.
如果上述方法不起作用,请尝试删除 node_modules
文件夹和 package-lock.json
文件以及 运行 命令 npm install
.
Use of
legacy-peer-deps
is not recommended, as it will not enforce thepeerDependencies
contract that meta-dependencies may rely on.
为了尝试遵循 npm 的建议,我没有设置 --legacy-peer-deps
,而是检查了 package-lock.json 并注意到 devDependencies(对于 Angular-related 包) 仍然引用旧版本(在我的例子中是 13.0.1,升级到 13.2.0)。
我只是删除了 package-lock.json 和 运行 npm install
并安装了 ng update @angular/cli @angular/core
所做的更新(到 package.json).
也没有必要删除 node_modules。