0

アプリケーションで StealJS + Bower 統合を使用していますが、いくつかの Bower コンポーネント (を含むes6-collections) に bower.json ファイルが含まれていません。es6-collections私のプロジェクトの bower.json ファイルの依存関係の 1 つであるため、StealJS はコンポーネントのbower.jsonファイルを読み込もうとしますes6-collectionsが、存在しないため見つからず、文句を言います:をロードするときに使用しますが、それは役に立ちません。StealJS にこのコンポーネントを読み込ませるにはどうすればよいですか?Unable to load the bower.json for es6-collections.System.config({ path: { 'es6-collections': '...' } })es6-collections

4

1 に答える 1

1

仮定

そこで、いくつかの仮定を立てます。

  • あなたはバワーからの盗みを使用しています
  • あなたはgithubから直接es6-collectionsを「bower install」しています
  • HTMLを使用して「メイン」ファイルをロードすることにより、 system-bowerプラグインを暗黙的に使用しています<script src="bower_components/steal/steal.js" main="main"></script>

これらのことがほとんど正しいと思われる場合、ファイルに構成を追加bower.jsonして、エラー/警告を黙らせ、すべてが期待どおりに機能するようにする必要があります。

説明:

そのため、system-bower プラグイン (steal がbower_componentsディレクトリからロードされていることを検出したため暗黙的に使用している) はコンポーネントbower.jsonファイルを使用してエントリ ポイントを決定するため、この場合、エラー/警告は es6- を見つけることができないことに起因します。コレクションbower.jsonファイル。

解決:

そのため、システム (steal によって使用される) に、そのモジュールの場所と、そのbower.jsonファイルの検索を停止できることを伝えるだけで済みます。

"system"プロパティを bower.json に追加し、次のような構成データを追加することでそれを行うことができます...

"system": {
  "paths": {
    "es6-collections": "bower_components/es6-collections/index.js"
  },
  "bowerIgnore": ["es6-collections"],
  "meta": {
    "es6-collections": {
      "format": "global"
    }
  }
}
  • そこのpaths構成は、システムにモジュールの場所を伝えます
  • bowerIgnore配列は、そのモジュールsystem-bowerの を検索しないように指示しますbower.json
  • 構成は、metaこのモジュールをグローバル オブジェクト (ブラウザーのウィンドウ) に追加するスクリプトのようにシステムに処理するように指示するためにあります。 : pollyfill するものが何もない場合は空のオブジェクトをエクスポートするため、エクスポートされたオブジェクトを使用できません。グローバル モジュールのように使用するのが最善です。

これらすべての詳細については...

http://stealjs.com/docs/bower.html

https://github.com/systemjs/systemjs/wiki/Meta-Configuration

http://stealjs.com/docs/steal.html

ここに実際の例を示しますhttps://gist.github.com/BigAB/c108bb0860c9cfee3d6aは、コピーして貼り付け/クローンを作成し、実行して動作を確認できる3つのファイルですbower install

于 2015-09-08T21:49:41.927 に答える