由于ɵɵinject和ɵɵdefineInjectable而无法运行angular app(在编译时出错)

在安装npm后出现此错误

+-未达到对等关系@ angular / common @ 6.1.10

+-未达到对等关系@ angular / core @ 6.1.10

`-file-saver@1.3.8

在编译后得到此错误

  

./ node_modules/@agm/core/fesm5/agm-core.js中的警告   4538:120-128“在'@ angular / core'中找不到导出'ɵɵinject'

     

./ node_modules/@agm/core/fesm5/agm-core.js中的警告   4538:34-52“在'@ angular / core'中找不到导出'ɵɵdefineInjectable'

我的package.json是:

{
  "name": "web-app","version": "2.1.0","license": "MIT","angular-cli": {},"scripts": {
    "ng": "ng","start": "ng serve","public": "ng serve --port 8080 --host 0.0.0.0","build": "ng build --prod --build-optimizer","lint": "tslint \"src/**/*.ts\"","test": "ng test","pree2e": "webdriver-manager update --standalone false --gecko false","e2e": "protractor"
  },"private": true,"dependencies": {
    "@agm/core": "^1.0.0-beta.2","@angular/animations": "^6.1.10","@angular/cdk": "^6.4.7","@angular/common": "^6.1.10","@angular/compiler": "^6.1.0","@angular/core": "^6.1.10","@angular/forms": "^6.1.0","@angular/http": "^6.1.0","@angular/material": "^6.4.7","@angular/material-moment-adapter": "^6.4.2","@angular/platform-browser": "^6.1.0","@angular/platform-browser-dynamic": "^6.1.0","@angular/router": "^6.1.0","@turf/turf": "latest","@types/file-saver": "^1.3.0","core-js": "^2.5.7","cron": "^1.7.2","enhanced-resolve": "^3.3.0","file-saver": "^1.3.8","hammerjs": "^2.0.8","highcharts": "^6.1.1","lodash": "^4.17.10","moment": "^2.22.2","ngx-clipboard": "^11.1.1","ngx-gauge": "1.0.0-beta.7","progressbar.js": "^1.0.1","rxjs": "6.2.2","rxjs-compat": "6.2.2","screenfull": "^3.3.2","socket.io": "^2.1.1","socket.io-client": "^2.1.1","ts-helpers": "^1.1.2","zone.js": "^0.8.26"
  },"devDependencies": {
    "@angular/cli": "^1.6.6","@angular/compiler-cli": "^6.1.0","@types/googlemaps": "^3.30.16","@types/highcharts": "^5.0.25","@types/jasmine": "2.8.8","@types/node": "~8.0.0","@types/socket.io": "^1.4.36","@types/socket.io-client": "^1.4.32","codelyzer": "^4.4.2","jasmine-core": "2.5.2","jasmine-spec-reporter": "2.5.0","karma": "2.0.5","karma-chrome-launcher": "^2.2.0","karma-cli": "^1.0.1","karma-jasmine": "^1.1.2","karma-remap-istanbul": "^0.6.0","protractor": "~4.0.13","ts-node": "1.2.1","tslint": "^5.10.0","typescript": "2.7.2"
  },"browserslist": [
    "last 2 versions","ie 11"
  ]
}
fandly_jw 回答:由于ɵɵinject和ɵɵdefineInjectable而无法运行angular app(在编译时出错)

就我而言,我仅将版本从 “ @ agm / core”:“ ^ 1.0.0-beta.5” 更改为 “ @ agm / core”:“ 1.0.0”

对于有角度的7、8,新版本 “ @ agm / core”:“ 1.1.0” 不起作用, “ @ agm / core“:都不是” ^ 1.0.0-beta.5“

,

尝试删除您的import Player from './player.js'; import InputHandler from './input.js'; import { buildLevel,map1 } from './levels.js'; export default class Game { constructor(gameWidth,gameHeight) { this.gameWidth = gameWidth; this.gameHeight = gameHeight; this.player = new Player(this); this.gameObjects = []; this.walls = []; this.levels = [map1]; this.currentLevel = 0; new InputHandler(this.player,this); } start() { this.walls = buildLevel(this,this.levels[this.currentLevel]); console.log('yes'); this.gameObjects = [this.player]; } update(deltaTime) { console.log('update'); } draw(ctx) { console.log('draw'); [...this.gameObjects,...this.walls].forEach(object => object.draw(ctx)); } } 文件夹和node_modules文件,然后重新运行package-lock.json

或者,运行npm install,即使磁盘上存在本地副本,force标志也会强制npm获取远程资源。

最后,您可以尝试重新安装npm i --force

npm
,

Yash,

我通过在新文件夹中克隆项目的方式解决了该问题,然后升级了NPM版本并再次安装了node_modules。

,

我通过打开 node_modules/ 并从 ɵɵinject 包中删除所有出现的 ɵɵdefineInjectable@agm/core 解决了这个问题。

这是我的package.json

{
"name": "eterna-posta-web","version": "0.0.0","scripts": {
"ng": "ng","start": "ng serve","build": "ng build","test": "ng test","lint": "ng lint","e2e": "ng e2e"
},"private": true,"dependencies": {
  "@agm/core": "^1.0.0-beta.7","@agm/js-marker-clusterer": "^1.0.0","@angular/animations": "~7.1.0","@angular/common": "~7.1.0","@angular/compiler": "~7.1.0","@angular/core": "~7.1.0","@angular/forms": "~7.1.0","@angular/http": "^7.1.3","@angular/platform-browser": "~7.1.0","@angular/platform-browser-dynamic": "~7.1.0","@angular/router": "~7.1.0","@microsoft/signalr": "^5.0.3","@techiediaries/ngx-qrcode": "^9.1.0","core-js": "^2.5.4","js-marker-clusterer": "^1.0.0","rxjs": "~6.3.3","tslib": "^1.9.0","zone.js": "~0.8.26"
},"devDependencies": {
"@angular-devkit/build-angular": "^0.13.8","@angular/cli": "~7.1.2","@angular/compiler-cli": "~7.1.0","@angular/language-service": "~7.1.0","@types/jasmine": "~2.8.8","@types/jasminewd2": "~2.0.3","@types/node": "~8.9.4","codelyzer": "~4.5.0","jasmine-core": "~2.99.1","jasmine-spec-reporter": "~4.2.1","karma": "~3.1.1","karma-chrome-launcher": "~2.2.0","karma-coverage-istanbul-reporter": "~2.0.1","karma-jasmine": "~1.1.2","karma-jasmine-html-reporter": "^0.2.2","protractor": "~5.4.0","ts-node": "~7.0.0","tslint": "~5.11.0","typescript": "~3.1.6"
 }
}

这是原始答案:answer

,

只需将@ agm / core设置为@ agm / core”:“ 1.0.0” 和 打“ npm我” 经过我的研究

本文链接:https://www.f2er.com/3008784.html

大家都在问