首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular2教程(英雄之旅):找不到模块'angular2-in-memory-web-api‘

Angular2教程(英雄之旅):找不到模块'angular2-in-memory-web-api‘
EN

Stack Overflow用户
提问于 2016-05-23 01:40:31
回答 29查看 58.3K关注 0票数 102

我一直在关注Tutorial。在Http章节中更改app/maint.ts后,通过命令行启动应用程序时出现错误:

app/main.ts(5,51):错误TS2307:找不到模块'angular2-in-memory-web-api‘。

(Visual Studio代码在main.ts中给出了同样的错误-红色的波浪形下划线。)

这是我的systemjs.config.js

/**
 * System configuration for Angular 2 samples
 * Adjust as necessary for your application needs.
 */
(function(global) {
  // map tells the System loader where to look for things
  var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs'
  };
  // packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
  };
  var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade',
  ];
  // Add package entries for angular packages
  ngPackageNames.forEach(function(pkgName) {
    packages['@angular/'+pkgName] = { main: pkgName + '.umd.js', defaultExtension: 'js' };
  });
  var config = {
    map: map,
    packages: packages
  }
  System.config(config);
})(this);

这是我的app/main.ts

// Imports for loading & configuring the in-memory web api
import { provide }    from '@angular/core';
import { XHRBackend } from '@angular/http';

import { InMemoryBackendService, SEED_DATA } from 'angular2-in-memory-web-api';
import { InMemoryDataService }               from './in-memory-data.service';

// The usual bootstrapping imports
import { bootstrap }      from '@angular/platform-browser-dynamic';
import { HTTP_PROVIDERS } from '@angular/http';

import { AppComponent }   from './app.component';

bootstrap(AppComponent, [
    HTTP_PROVIDERS,
    provide(XHRBackend, { useClass: InMemoryBackendService }), // in-mem server
    provide(SEED_DATA,  { useClass: InMemoryDataService })     // in-mem server data
]);
EN

回答 29

Stack Overflow用户

回答已采纳

发布于 2016-05-23 19:54:21

对我来说,唯一的解决方案是将angular2-in-memory-web-api升级到0.0.10

package.json集合中

'angular2-in-memory-web-api': '0.0.10'

在dependecies块和systemjs.config.js集合中

'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }

packages对象中。

票数 69
EN

Stack Overflow用户

发布于 2017-03-23 16:37:39

对于使用当前CLI工具创建的项目,我通过安装

npm install angular-in-memory-web-api --save

,然后执行导入为

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"   }
票数 102
EN

Stack Overflow用户

发布于 2016-09-27 08:50:33

以下是对我有效的方法:

我注意到package.json有以下版本:

"angular2-in-memory-web-api":"0.0.20“

注意名称中的"2“。

然而,当引用InMemoryWebApiModule时,它使用的是'angular- in -memory-web-api‘,名称中没有2。所以我添加了它,它解决了这个问题:

从‘angular2-in-memory-web-api’导入{ InMemoryWebApiModule };

注释:我在https://github.com/angular/in-memory-web-api的通知部分找到了这个

从v.0.1.0开始,npm包从angular2-in-memory-

-api重命名为当前名称angular2-in-memory-web-api。0.0.21之后的所有版本都以此名称发布。确保更新您的package.json和import语句。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37377529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档