問題タブ [ember-cli-addons]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - ルートディレクトリにファイルを追加する Ember アドオン
bower ディレクトリから Ember アプリのルートに一連の JS ファイルをコピーする必要があるアドオンがあります/dist
(これは、Service Worker に関連付けられたスコープ ルール用です)。おそらくフックを使用できると思いましtreeForApp
たが、エラーは発生していませんが、望ましい結果も得られていません。
はindex.js
:
index.js
注: postBuildフックの一部として javascript ファイルをコピーするだけでこの問題を解決できるかもしれないと思っていましたが、これは JS ファイルを dist フォルダーのルートに配置しますが、ember serve
明らかに ember-cli によって提供されません。パイプラインを構築します。Stefan Penner は、ディレクトリは開発者が見るものであると指摘しました
dist
が、サービスは実際にはtmp
ディレクトリ構造内で行われます... これは、私の「ハック」が機能しなかった理由を説明しています。
javascript - Ember CLI/Ember.js の約束
私は ember-cli-deploy プラグインを作成しようとしていますが、promise の助けを借りることができます。メイン プラグインの index.js には、次のコード index.js があります。
上記は期待どおりに機能し、約束は適切に解決されます。
上記のコードを次のように変更すると:
コードは失敗します。次に、次のことを試しましたが、これも失敗します。
上記の両方のケースで、以下のように定義されている createDeployment メソッド内の未定義の変数/プロパティについて不平を言います。
上記の 2 つのシナリオで何が間違っていますか?
ember.js - ボックスのテストから直接 ember アドオン コードをインポートする
私は残り火アドオンの作成に取り組んでおり、そのテストを作成しようとして少し行き詰まっています。このアドオンは、コンポーネントなどを出荷するのではなく、コマンド ライン オプションを実装します。その結果、moduleFor タイプ テスト ヘルパーはどれも、すぐに使用できる qunit テストに関連していません。私はコンポーネントをレンダリングしていません。コマンド ライン オプションの背後にある実装をテスト ランナーに実行してもらいたいだけです。
テストを作成するには、アドオンにあるさまざまなソース ファイルを必要とするだけです。たとえば、ルート/lib にあるファイル。root/tests/integration の下の qunit 統合テストでこれらのファイルを見つけることができる require/import を取得できません。これは可能ですか?次のような相対パスが必要です。
しかし、そこには何も機能していないようです。アドオン用に作成されたフォルダー構造は次のようになります。
- 根
- アプリ
- lib (アドオン impl をここに置くことを計画していました)
- テスト
- ダミー
- ヘルパー
- 統合
- example-test.js (ここから lib フォルダーのコードを参照しようとしています)
この場合の私のオプションは、アドオンのルートに基づいて、ember マジックやダミーアプリを使用せずに、単純な古い JS ユニットテスト (qunit、jasmine など) にフォールバックすることのようです。ember generate addon によって提供される「すぐに使用できる」パスにとどまりたいのですが、ソース ファイルを参照できるように、ここで独自の方法を使用する必要があるようです。
ember.js - Ember アドオンと bower の依存関係のバージョン管理
(関連し、非常に似ていますが、この質問と同じではありません。私の質問はnpm install
、一般的にdepsを最新に保つというトピックを通じて、node_modulesが失われ、再フェッチされるシナリオを探しているためです。)
A をバージョン a1 のアドオンとし、B をバージョン b1 のそのアドオンの bower 依存関係とする。アドオンは、次のようなデフォルトのブループリントを介して bower パッケージをインストールします
ここで、C を A を消費するアプリケーションとします。ember install A
bower パッケージは実際に C にインストールされています。ここまでは問題ありません。ここで、Aがバージョン a2 に更新され、バージョン b2 の B が含まれます。Cでは、
(node_modules なしで C をチェックアウトし、npm install を実行すると、bower.json が古い場合、同様の問題が発生します) A.a2 がフェッチされます。
- A.a2 のデフォルトのブループリントを実行して、C に B.b2 もインストールさせるべきですか? (これはここで尋ねられた実際の質問です)
ブループリントが手動で実行される場合、B.b2 は実際にプロンプトが表示されます。つまり、プロジェクトにバウアー コンフリクトがあることがわかり、それを解決する方法を尋ねられます。
今試してみましたが、うまくいきません。npm に postinstall スクリプトを指定しても ( ember g testaddon
)、どちらも機能しません (npm は異なる順序でパッケージをインストールしようとし、postinstall スクリプトの実行時に ember-cli がインストールされないため)。
とにかく手動でチェックする必要がある場合、ブループリントがバウアーの依存関係を伝播するのに何のメリットがありますか? 私はこれを間違って理解していますか?これは意図した動作ですか?