У меня сильное разочарование по поводу JSPM, это всего лишь последняя проблема из многих.
Я установил angularfire2
через JSPM через - sudo jspm install npm:angularfire2
(Да, SUDO. Без SUDO не работает!!), который должен установить @angular
зависимостей. Сгенерированный пакет json выглядит так:
"jspm": {
"dependencies": {
"angularfire2": "npm:angularfire2@^2.0.0-beta.2"
},
"devDependencies": {
"typescript": "npm:typescript@^1.8.10"
}
}
И сгенерированный конфиг выглядит так:
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "typescript",
typescriptOptions: {
"emitDecoratorMetadata": true
},
paths: {
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
packages: {
"app": {
"main": "./app.ts",
"defaultExtension": "ts"
}
},
map: {
"angularfire2": "npm:[email protected]",
"typescript": "npm:[email protected]",
...
"npm:[email protected]": {
"@angular/common": "npm:@angular/[email protected]",
"@angular/compiler": "npm:@angular/[email protected]",
"@angular/core": "npm:@angular/[email protected]",
"@angular/platform-browser": "npm:@angular/[email protected]",
"@angular/platform-browser-dynamic": "npm:@angular/[email protected]",
"firebase": "npm:[email protected]",
"rxjs": "npm:[email protected]"
}
...
}
});
Поэтому, когда я обновляю страницу приложения, я вижу, что оно правильно импортирует angularfire2.js
, а затем пытается импортировать @angular/platform-browser-dynamic.js
. Но адрес, который он пытается импортировать, - http://localhost:8000/@angular/platform-browser-dynamic.js
, что является неправильным путем! Я предполагаю, что это потому, что первая строка моего app.ts
(и отправная точка приложения) имеет эту строку- import { bootstrap } from '@angular/platform-browser-dynamic';
. Но что ПОЧЕМУ JSPM не отображает это правильно? Нужно ли устанавливать эти пакеты отдельно? Если да, то ПОЧЕМУ существует такая вещь, как зависимости пакетов?
Ожидается: при разрешении этого импорта должен быть разрешен адрес /jspm_packages/npm/**
.
Получил: SystemJS пытается загрузить пакет из корневого веб-узла /
.