私は JSPM にかなりの不満を抱いています。これは多くの問題のうちの最新の問題です。
依存関係をインストールする必要がある- (はい、SUDO。SUDOなしでは機能しません!!)をangularfire2
介してJSPM経由でインストールしました。生成されたパッケージ json は次のようになります。sudo jspm install npm:angularfire2
@angular
"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:angularfire2@2.0.0-beta.2",
"typescript": "npm:typescript@1.8.10",
...
"npm:angularfire2@2.0.0-beta.2": {
"@angular/common": "npm:@angular/common@2.0.0-rc.2",
"@angular/compiler": "npm:@angular/compiler@2.0.0-rc.2",
"@angular/core": "npm:@angular/core@2.0.0-rc.2",
"@angular/platform-browser": "npm:@angular/platform-browser@2.0.0-rc.2",
"@angular/platform-browser-dynamic": "npm:@angular/platform-browser-dynamic@2.0.0-rc.2",
"firebase": "npm:firebase@3.0.5",
"rxjs": "npm:rxjs@5.0.0-beta.6"
}
...
}
});
そのため、アプリケーションのページを更新すると、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 は、Web ルートからパッケージをロードしようとします/
。