JSファイルのセットをbowerディレクトリからEmberアプリケーションのルート/dist
にコピーする必要があるアドオンがあります(これはサービスワーカーに関連する有効範囲規則です)。私はおそらくtreeForApp
フックを使用することができたと思ったが、私はエラーが発生していない間にも私は望みの結果を得ていない。Emberアドオンがルートディレクトリにファイルを追加します
index.js
は次のとおりです。
const Funnel = require('broccoli-funnel');
module.exports = {
name: 'ember-upup',
treeForApp: function(tree) {
tree = new Funnel(tree, { include:
[
'bower_components/upup/dist/upup.min.js',
'bower_components/upup/dist/upup.sw.min.js'
]});
return this._super.treeForApp.call(this, tree);
},
注:私は、私は単に
index.js
ポストビルドフックの一部としてJavaScriptファイルをコピーすることによってこの問題を解決することができるかもしれないと思ったが、これはDOESながら、 distファイルのルートにJSファイルを置いてください。ember-cliのember serve
によって提供されていません。明らかに、そのパイプラインの1つにプッシュされていなければなりません。私の「ハック」は機能しなかった理由をステファン・ペナーは今、開発者が見てみたが、実際に
tmp
ディレクトリ構造内で行われる提供するためのdist
ディレクトリは指摘している...これは説明します。
デフォルトの青写真 'this.addBowerPackageToProject( 'upup.js')'でインポートしようとしましたか? – Bek
@Bek 'addBowerPackageToProject'は、ファイルをbower_componentsディレクトリに入れるための最初のステップです。私がそこから行う必要があるのは、2つのJSファイルを最初の場所からアプリケーションビルドのルート(別名 '/ dist'フォルダ)に移動することです。これは重要です。ディストリビューションのルートに存在しない場合、サービスワーカーはすべてのページアセットとやりとりすることができないからです。 – ken
'addBowerPackageToProject'を既に持っているなら、' include'フックで 'app.import()'を使ってメイン 'index.js'にインポートする必要があります。そうでない場合、私はそれを答えとして書くでしょうか? – Bek