1

アドオンのインストール中にbowerパッケージを含めるには、Emberアドオンでどのように作業する必要がありますか.

1)アドオンに含めたいbowerパッケージをインストールしましたbower instal packagename --save

2)次に、私のアドオンのルートで、次のように編集しましたindex.js

/* jshint node: true */
'use strict';

module.exports = {
  name: 'my-ember-component',
  included: function(app) {
    this._super.included(app);

    if(app.import){
      app.import(app.bowerDirectory + '/path-to-package/package.js');
    }
  }
};

ただし、アドオンがインストールされているアプリケーションを起動しようとすると、 ENOENT: no such file or directory, stat '/my-ember-application/tmp/source_map_concat-input_base_path-bWTPoVC9.tmp/0/bower_components/path-to-package/package.js

アドオンをインストールするすべてのアプリケーションに、bower の依存関係を手動で追加する必要はありません。

注:npm linkアドオンをデバッグするために使用していますが、これが問題の原因である可能性がありますか?

4

1 に答える 1

2

通常、アドオンのバウアー コンポーネントは、実行中に消費プロジェクトに追加されember install addonます。

ただし、ローカル開発を行っており、npm リンクを使用しているためです。これをシミュレートする必要があります。これは次の方法で実行できます。

ember generate your-addon-name

説明。

ember cli docs のデフォルトのブループリントに関するドキュメントを確認してください。

アドオンと同じ名前のブループリント (明示的に変更されていない限り、上記を参照) は、インストール後に自動的に実行されます (開発中は、リンク後に手動で実行する必要があります)。ここで、アドオンの bower 依存関係をクライアント アプリに結び付けて、実際にインストールできるようにします。

つまり、アプリのデフォルトのブループリントを作成し、そこに bower 依存関係を追加する必要があります。

ファイルを作成します。

//blueprints/your-addon-name/index.js
module.exports = {
  normalizeEntityName: function() {}, // no-op since we're just adding dependencies

  afterInstall: function() {
    return this.addBowerPackageToProject('BOWER PACKAGE NAME'); // is a promise
  }
};

次に、デフォルトのブループリントを実行すると

ember generate your-addon-name
于 2016-03-01T16:02:39.663 に答える