Angular2 Tutorial (Tour of Heroes): Cannot find module 'angular2-in-memory-web-api'
As for projects created using current CLI Tools, it worked for me by installing
npm install angular-in-memory-web-api --save
and then performing import as
import { InMemoryWebApiModule } from 'angular-in-memory-web-api/in-memory-web-api.module';
My package.json
> "dependencies": {
> "@angular/common": "^2.4.0",
> "@angular/compiler": "^2.4.0",
> "@angular/core": "^2.4.0",
> "@angular/forms": "^2.4.0",
> "@angular/http": "^2.4.0",
> "@angular/platform-browser": "^2.4.0",
> "@angular/platform-browser-dynamic": "^2.4.0",
> "@angular/router": "^3.4.0",
> "angular-in-memory-web-api": "^0.3.1",
> "core-js": "^2.4.1",
> "rxjs": "^5.1.0",
> "zone.js": "^0.7.6" },
> "devDependencies": {
> "@angular/cli": "1.0.0-rc.4",
> "@angular/compiler-cli": "^2.4.0",
> "@types/jasmine": "2.5.38",
> "@types/node": "~6.0.60",
> "codelyzer": "~2.0.0",
> "jasmine-core": "~2.5.2",
> "jasmine-spec-reporter": "~3.2.0",
> "karma": "~1.4.1",
> "karma-chrome-launcher": "~2.0.0",
> "karma-cli": "~1.0.1",
> "karma-jasmine": "~1.1.0",
> "karma-jasmine-html-reporter": "^0.2.2",
> "karma-coverage-istanbul-reporter": "^0.2.0",
> "protractor": "~5.1.0",
> "ts-node": "~2.0.0",
> "tslint": "~4.5.0",
> "typescript": "~2.0.0" }
For me the only solution was to upgrade angular2-in-memory-web-api
to 0.0.10
.
In package.json
set
'angular2-in-memory-web-api': '0.0.10'
in the dependecies block, and in systemjs.config.js
set
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }
in the packages
object.
Here is what worked for me:
I noticed that the package.json had the following version:
"angular2-in-memory-web-api": "0.0.20"
Note the "2" in the name.
However when referencing InMemoryWebApiModule it was using 'angular-in-memory-web-api' without the 2 in the name. So I added it and it resolved the issue:
import { InMemoryWebApiModule } from 'angular2-in-memory-web-api';
Note: I found this in notice section of https://github.com/angular/in-memory-web-api
As of v.0.1.0, the npm package was renamed from angular2-in-memory-web-api to its current name, angular-in-memory-web-api. All versions after 0.0.21 are shipped under this name. Be sure to update your package.json and import statements.