0

私は 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 ルートからパッケージをロードしようとします/

4

1 に答える 1

0

マップに以下を手動で追加する必要があります。

"@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",

それが本当の解決策かどうかはわかりませんが、うまくいきます。未来はここにあります。

于 2016-06-26T19:20:51.467 に答える