Saya telah mengikuti Tutorial . Setelah mengubah app/maint.ts
di bab Http saya mendapatkan kesalahan saat memulai aplikasi melalui baris perintah:
app / main.ts (5,51): kesalahan TS2307: Tidak dapat menemukan modul 'angular2-in-memory-web-api'.
(Visual Studio Code memberi saya kesalahan yang sama dalam main.ts - garis bawah bergelombang merah.)
Ini milik saya 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);
Ini milik saya 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' }
di file systemjs.config.js (lihat jawaban oleh @GrantTaylor).'angular2-in-memory-web-api/**/*.+(js|js.map)'
kevendorNpmFiles
array di file angular-cli-build.js. Aftewards, Anda harus menunjukkan Anda peta sistem-config seperti:'angular2-in-memory-web-api': 'vendor/angular2-in-memory-web-api'
. Dan kemudian jalankan kembaling serve
(ataunpm start
) sehingga file angular2-in-memory-web-api berakhir di folder dist / vendor.dependencies
bagian:"angular-in-memory-web-api": "0.1.1"
. Saya harus larinpm install
dari folder proyek setelah itu.Adapun proyek yang dibuat menggunakan Alat CLI saat ini, itu berhasil untuk saya dengan menginstal
lalu melakukan impor sebagai
sumber
npm install
perintah, saya mendapatkan versi 0.3.2. Dengan versi itu, saya bisaimport { InMemoryWebApiModule } from 'angular-in-memory-web-api';
seperti yang dijelaskan dalam tur.npm install
,import { InMemoryWebApiModule } from 'angular-in-memory-web-api'
berhasil.Inilah yang berhasil untuk saya:
Saya perhatikan bahwa package.json memiliki versi berikut:
"angular 2 -dalam-memori-web-api": "0.0.20"
Catat angka " 2 " di namanya.
Namun saat mereferensikan InMemoryWebApiModule itu menggunakan 'angular-in-memory-web-api' tanpa 2 di namanya. Jadi saya menambahkannya dan menyelesaikan masalah:
impor {InMemoryWebApiModule} dari 'angular2-in-memory-web-api';
Catatan : Saya menemukan ini di bagian pemberitahuan https://github.com/angular/in-memory-web-api
sumber
Angular 4 Perubahan
Mulai 17 Oktober 2017, tutorial gagal menyebutkan bahwa
angular-in-memory-web-api
tidak termasuk dalam build CLI standar, dan harus diinstal secara terpisah. Ini dapat dengan mudah dilakukan dengannpm
:$ npm install angular-in-memory-web-api --save
Ini secara otomatis menangani perubahan yang diperlukan untuk
package.json
, jadi Anda tidak perlu melakukan pengeditan sendiri.Titik-titik kebingungan
Utas ini cukup membingungkan karena CLI Angular telah berubah secara signifikan sejak utas ini dimulai; masalah dengan banyak API yang berkembang pesat.
angular-in-memory-web-api
telah diganti namanya; itu menjatuhkan 2 dari sudut 2 menjadi sederhanaangular
systemjs.config.js
tidak ada lagi.npm
'spackage.json
tidak harus diedit secara langsung; gunakan CLI.Larutan
Pada Oktober 2017, perbaikan terbaik adalah menginstalnya sendiri menggunakan
npm
, seperti yang saya sebutkan di atas:$ npm install angular-in-memory-web-api --save
Semoga beruntung di luar sana!
sumber
angular-in-memory-web-api
dengannpm
? 2. Apakah ada entri untukangular-in-memory-web-api
Andapackage.json
? 3. coba bunuh dan mulai ulang CLI Angular:Ctrl+C
untuk membunuh;ng serve
untuk memulai kembali). Terkadang CLI bertingkah aneh (Ditto for the Angular plugin for VSCode)Ini bekerja untuk saya:
Dalam set blok dependensi package.json (gunakan "angular" bukan "angular2")
Lalu lari
ATAU
cukup jalankan saja (pilihan saya)
sumber
Saat ini saya sedang melakukan tutorial dan mengalami masalah serupa. Apa yang tampaknya telah tetap bagi saya adalah mendefinisikan file utama untuk
'angular2-in-memory-web-api'
dalampackages
variabel disystemjs.config.js
:Sebelum saya menambahkan ini, ada kesalahan 404 yang dicatat di
/node_modules/angular2-in-memory-web-api/
tempat yang tampaknya mencoba memuat file JavaScript. Sekarang itu memuat/node_modules/angular2-in-memory-web-api/index.js
dan file lain dalam modul ini.sumber
Ini memecahkan masalah 404
Dari Angular in-memory-web-api Documentation
Impor modul harus mencantumkan InMemoryWebApiModule setelah HttpModule
sumber
Dari folder root Anda (folder berisi package.json), menggunakan:
sumber
Solusi paling sederhana yang dapat saya pikirkan adalah menginstal paket dengan npm dan memulai ulang server:
Saya hampir menginstal paket angular2-in-memory-web-api , tetapi halaman npm mengatakan:
Catatan : Solusi ini berfungsi untuk proyek yang dibuat dengan alat CLI, yang tidak mencantumkan paket sebagai dependensi, dan mungkin tidak memecahkan masalah untuk proyek yang dibuat dengan benih Quickstart, yang mencantumkan paket sebagai dependensi .
sumber
ng serve
masih berjalan saat ini sedang dipasang. Harus mematikannya dan memulai ulang.Saya menggunakan sudut 4 dan di bawahnya memecahkan masalah saya.
sumber
Ini benar-benar menyebalkan. Terima kasih kepada @traneHead, @toni, dan lainnya, langkah-langkah ini berhasil untuk saya.
angular2-in-memory-web-api
ke0.0.10
systemjs.config.js
:angular2-in-memory-web-api': { main: 'core.js', defaultExtension: 'js' }
sumber
Saya membuat proyek saya menggunakan angular-cli dan saya mengatur di package.json "angular-in-memory-web-api": "^ 0.2.4" di blok dependensi dan kemudian saya menjalankan npm install.
Bekerja untuk saya: D
sumber
Untuk pengguna yang membuat proyek kosong dengan angular cli 1.4.9 (Sebenarnya pada Oktober 2017) dan kemudian mulai mengikuti petunjuk langkah demi langkah, cukup jalankan perintah berikut:
Hanya perintah itu, tanpa tambahan apa pun.
Harapan itu menghemat waktu seseorang
sumber
Jika Anda menggunakan cli sudut, Anda akan mendapatkan kesalahan ini.
Harap tambahkan
'angular2-in-memory-web-api'
diconst barrels
file system-config.ts seperti di bawah ini:Dan tambahkan
'angular2-in-memory-web-api': 'vendor/angular2-in-memory-web-api'
seperti di bawah ini.Bangun kembali menggunakan
npm start
. Ini menyelesaikan masalah saya.sumber
Coba tambahkan definisi skrip ketikan:
... menentukan nama ketergantungan:
Kemudian tambahkan titik masuk untuk "angular2-in-memory-web-api" di /systemjs.config.js
sumber
Saya memiliki masalah yang sama, saya berubah di systemjs.config:
Dengan baris ini:
sumber
Mengubah baris ini, seperti yang disarankan di atas, berhasil untuk saya di Tutorial Angular 2 Heroes:
sumber
Saya menyelesaikannya dengan menyalin
index.js
danindex.d.ts
kecore.js
dancore.d.ts
, yaitu, di dalamnode_modules/angular2-in-memory-web-api
folder. Cari tahu.sumber
Jawaban utama membantu saya: perubahan
untuk
sumber
di app \ main.ts cukup memodifikasi:
untuk:
lalu tambahkan parameter index.js di
di systemjs.config.js
itu berhasil untuk saya.
sumber
Perbaikan terbaru pada tanggal ini, adalah
"angular-in-memory-web-api": "0.0.20"
menjadi"angular-in-memory-web-api": "0.1.0"
dan"zone.js": "^0.6.23"
ke"zone.js": "^0.6.25"
'angular-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }
sumber
Sampai saat ini (saat ini 0.1.14), ini adalah yang tercantum di file
CHANGELOG
sumber
Saya mendapat kesalahan ini karena saya mengimpor
InMemoryWebApiModule
dariangular2-in-memory-web-api
saya menghapus 2. Sebenarnya saya memiliki dua entri di file package.json saya; yang satuangular2-in-memory-web-api
dan yang kedua adalahangular-in-memory-web-api
. Menggunakanangular-in-memory-web-api
memecahkan masalah bagi saya. Jadi impor Anda harus seperti ini:Menggunakan cli-angular Anda tidak perlu mengubah apapun tentang
system.config.js
.sumber
Bagi saya, hanya melakukan penginstalan dari direktori angular-tour-of-Heroes berhasil untuk saya
C: \ nodejs \ angular-tour-of-Heroes> npm instal angular-in-memory-web-api --save
sumber
Cara terbaik adalah menginstalnya menggunakan NPM misalnya
npm instal git + https://github.com/itryan/in-memory-web-api/ --save
itu akan menambah referensi yang diperlukan
sumber
Saya mengalami masalah serupa. Saya baru saja mengunduh seluruh contoh dekat akhir bagian 7 (bagian terakhir) dari tutorial dan menjalankannya. Berhasil.
Tentu saja, Anda perlu menginstal dan mengkompilasi semuanya terlebih dahulu.
Saya juga mengubah 'app-root' menjadi 'aplikasi-saya' di app.component.ts.
sumber
Jika menggunakan angular cli untuk membangun aplikasi angular2 Anda, termasuk angular2-in-memory-web-api melibatkan tiga langkah:
tambahkan api ke file system-config.ts (di dalam subdirektori src) seperti di bawah ini:
Menambahkan
ke larik vendorNpmFiles di file angular-cli-build.js seperti ofShard yang disebutkan;
Tentu saja, tambahkan ke package.json seperti yang dijelaskan oleh traneHead; untuk 2.0.0-rc.3 saya menggunakan versi di bawah ini:
Saya menemukan tautan ini "Menambahkan material2 ke proyek Anda" menjelaskan proses penambahan pustaka pihak ketiga dengan cukup jelas.
sumber
The
InMemoryDataService
kelas tidak berada di bawah API. Kita perlu membuat kelas layanan dan kemudian mengimpor kelas layanan itu ke file app.module.ts.sumber
Toni, Anda perlu menambahkan pengetikan untuk Angular2-in-memory-web-api.
Tambahkan mereka di file TS Anda.
sumber