Я следил за учебником . После изменения app/maint.ts
в главе Http я получаю сообщение об ошибке при запуске приложения через командную строку:
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
]);
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }
в systemjs.config.js файле (см ответ на @GrantTaylor).'angular2-in-memory-web-api/**/*.+(js|js.map)'
его вvendorNpmFiles
массив в файле angular-cli-build.js. Aftewards, вы должны указать свой системный конфигурационный карту следующим образом:'angular2-in-memory-web-api': 'vendor/angular2-in-memory-web-api'
. А затем перезапуститеng serve
(илиnpm start
), чтобы файлы angular2-in-memory-web-api оказались в папке dist / vendor.dependencies
разделе:"angular-in-memory-web-api": "0.1.1"
.npm install
Впрочем, потом мне пришлось бежать из папки проекта.Что касается проектов, созданных с использованием текущих инструментов CLI, у меня это сработало, установив
а затем выполнить импорт как
источник
npm install
команды у меня появилась версия 0.3.2. С этой версией я мог бы,import { InMemoryWebApiModule } from 'angular-in-memory-web-api';
как описано в туре.npm install
,import { InMemoryWebApiModule } from 'angular-in-memory-web-api'
работает.Вот что у меня сработало:
Я заметил, что у package.json была следующая версия:
"angular 2 -in-memory-web-api": "0.0.20"
Обратите внимание на " 2 " в названии.
Однако при ссылке на InMemoryWebApiModule он использовал angular-in-memory-web-api без 2 в имени. Я добавил его, и проблема была решена:
импортировать {InMemoryWebApiModule} из 'angular2-in-memory-web-api';
Примечание : я нашел это в разделе уведомлений https://github.com/angular/in-memory-web-api
источник
Angular 4 изменения
По состоянию на 17 октября 2017 г. в руководстве не упоминается, что
angular-in-memory-web-api
не входит в стандартную сборку интерфейса командной строки и должно быть установлено отдельно. Это легко сделать с помощьюnpm
:$ npm install angular-in-memory-web-api --save
Это автоматически обрабатывает необходимые изменения
package.json
, поэтому вам не нужно вносить изменения самостоятельно.Пункты замешательства
Этот поток довольно сбивает с толку, поскольку интерфейс командной строки Angular значительно изменился с момента его запуска; проблема со многими быстро развивающимися API.
angular-in-memory-web-api
был переименован; он понижает 2 с углового 2 до простогоangular
systemjs.config.js
больше не существует.npm
«spackage.json
не должен быть отредактирован непосредственно; используйте CLI.Решение
По состоянию на октябрь 2017 года лучшее решение - просто установить его самостоятельно
npm
, как я уже упоминал выше:$ npm install angular-in-memory-web-api --save
Удачи!
источник
angular-in-memory-web-api
сnpm
? 2. Есть лиangular-in-memory-web-api
в вашемpackage.json
? 3. попробуйте убить и перезапустить Angular CLI:Ctrl+C
убить;ng serve
начать заново). Иногда CLI ведет себя странно (то же самое для плагина Angular для VSCode)Меня устраивает:
В наборе блоков зависимостей package.json (используйте angular вместо angular2)
Тогда беги
ИЛИ
просто просто беги (я предпочитаю)
источник
В настоящее время я занимаюсь обучением, и у меня возникла аналогичная проблема. Что , похоже, закрепились это для меня является определением основного файла для
'angular2-in-memory-web-api'
вpackages
переменномsystemjs.config.js
:До того, как я добавил это, в журнал была записана ошибка 404, в
/node_modules/angular2-in-memory-web-api/
которой, казалось, пытался загрузить файл JavaScript. Теперь загружаются/node_modules/angular2-in-memory-web-api/index.js
и другие файлы этого модуля.источник
Это решило проблему 404
Из документации Angular in-memory-web-api
При импорте модуля InMemoryWebApiModule должен быть указан после HttpModule.
источник
Из вашей корневой папки (папка содержит package.json), используя:
источник
Самым простым решением, которое я мог придумать, было установить пакет с помощью npm и перезапустить сервер:
Я почти установил пакет angular2-in-memory-web-api , но на странице npm говорится:
Примечание . Это решение работало для проекта, созданного с помощью инструментов интерфейса командной строки, в котором пакет не указан как зависимость и может не решить проблему для проектов, созданных с помощью начального числа Quickstart, в котором пакет указывается как зависимость. .
источник
ng serve
она все еще работала, пока она устанавливалась. Пришлось выключить и перезапустить.Я использую angular 4, и ниже моя проблема решена.
источник
Это была настоящая стерва. Благодаря @traneHead, @toni и другим эти шаги у меня сработали.
angular2-in-memory-web-api
на0.0.10
systemjs.config.js
:angular2-in-memory-web-api': { main: 'core.js', defaultExtension: 'js' }
источник
Я создаю свой проект с помощью angular-cli и устанавливаю в package.json «angular-in-memory-web-api»: «^ 0.2.4» в блоке зависимостей, а затем запускаю npm install.
Работа для меня: D
источник
Для пользователей, которые сгенерировали пустой проект с помощью angular cli 1.4.9 (актуально на октябрь 2017 г.), а затем начали выполнять пошаговые инструкции, просто выполните следующую команду:
Только эта команда, без чего-либо дополнительного.
Надеюсь, что сэкономит время
источник
Если вы используете angular cli, вы получите эту ошибку.
Пожалуйста, добавьте
'angular2-in-memory-web-api'
вconst barrels
файл system-config.ts, как показано ниже:И добавьте,
'angular2-in-memory-web-api': 'vendor/angular2-in-memory-web-api'
как показано ниже.Восстановите, используя
npm start
. Это решило проблему для меня.источник
Попробуйте добавить определения машинописного текста:
... указав имя зависимости:
Затем добавьте точку входа для angular2-in-memory-web-api в /systemjs.config.js
источник
У меня была такая же проблема, я изменил в systemjs.config:
По этой строке:
источник
Изменение этой строки, как было предложено выше, сработало для меня в Angular 2 Heroes Tutorial:
источник
Решил копированием
index.js
иindex.d.ts
вcore.js
иcore.d.ts
, то есть внутриnode_modules/angular2-in-memory-web-api
папки. Иди разберись.источник
Мне помог главный ответ: изменить
к
источник
в app \ main.ts просто измените:
кому:
затем добавьте параметр index.js в
в systemjs.config.js
это работа для меня.
источник
Последнее исправление на эту дату:
"angular-in-memory-web-api": "0.0.20"
на"angular-in-memory-web-api": "0.1.0"
и"zone.js": "^0.6.23"
на"zone.js": "^0.6.25"
'angular-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }
источник
Начиная с последней версии (в настоящее время 0.1.14), это то, что указано в
CHANGELOG
источник
Я получил эту ошибку , потому что я импортировал
InMemoryWebApiModule
изangular2-in-memory-web-api
я удалил 2. На самом деле у меня было две записи в моем файле package.json; один был,angular2-in-memory-web-api
а второй былangular-in-memory-web-api
. Использованиеangular-in-memory-web-api
решило проблему для меня. Итак, ваш импорт должен быть таким:Используя cli-angular, вам не нужно ничего менять относительно
system.config.js
.источник
Для меня просто установка из каталога angular-tour-of-heroes работает для меня
C: \ nodejs \ angular-tour-of-heroes> npm установить angular-in-memory-web-api --save
источник
Лучший способ - установить его с помощью NPM, например
npm установить git + https://github.com/itryan/in-memory-web-api/ --save
он добавит необходимую ссылку
источник
Я столкнулся с похожей проблемой. Я просто загрузил весь пример в конце части 7 (последней части) учебника и запустил его. Это сработало.
Конечно, сначала нужно все установить и скомпилировать.
Я также изменил «app-root» на «my-app» в app.component.ts.
источник
Если вы используете angular cli для создания приложения angular2, в том числе angular2-in-memory-web-api, нужно выполнить три шага:
добавьте api в файл system-config.ts (внутри подкаталога src), как показано ниже:
Добавить
в массив vendorNpmFiles в файле angular-cli-build.js, как упоминалось в ofShard;
Конечно, добавьте в package.json, как описано traneHead; для 2.0.0-rc.3 я использую версию ниже:
Я считаю, что эта ссылка «Добавление материала2 в ваш проект» довольно четко объясняет процесс добавления сторонних библиотек.
источник
InMemoryDataService
Класс не подпадает под какой - либо API. Нам нужно создать класс обслуживания, а затем импортировать этот класс обслуживания в файл app.module.ts.источник
Тони, тебе нужно добавить типизацию для Angular2-in-memory-web-api.
Добавьте их в свой файл TS.
источник