最新(この記事の執筆時点では 2.4.3)/vendor
を使用して構築された EmberJS プロジェクトのディレクトリの下に ES6 ライブラリ "foo" があるとします。ember-cli
foo が複数のファイル ( 、 など) を持つライブラリでbar.js
ありbaz.js
、それらすべてが何かをエクスポートするとします。
、などを取りvendor/foo/bar.js
、vendor/foo/baz.js
それらを配布ファイルにバンドルしたいと思います。たとえばvendor/foo/dist/foo-bundle.js
、次のようにしてEmberにインポートできます。
app.import("vendor/foo/dist/foo-bundle.js");
これは、バンドラーおよび/またはトランスパイラー ( Babelなど) で可能であるように見えますが、どのツールをどの組み合わせで使用する必要があるかは明確ではありません。Ember には、ember-cli を介して私がやりたいことを行うための組み込みツールがありますか? webpack、browserify、またはrollupなどの外部バンドラーを使用する必要がありますか?
一般的に、JavaScript ツールの周りには多くのノイズがあるようで、この問題に対してどのような選択肢があり、それらを適切に活用する方法を理解するのが難しくなっています。どんな援助でも大歓迎です。
参考になりそうなメモ…
これまでにいくつかのことを試しました:
main.js
EmberJS が依存関係ツリーをたどり、ステートメントで参照された他のファイルをインポートすることを期待して、ファイルのインポートだけを試みましたimport
。これはmain.js
ファイルのみをインポートし、他の依存関係はインポートしませんでした。
broccoli-es6modulesを調べたところ、実行時にエラーが発生しましたが、ロールアップを支持して廃止された esperanto も使用しています。
また、ロールアップを直接使用してみましたが、成功の度合いはわずかでしたが、多くの場合、bundle.js
出力が空で、bar.js
またはbaz.js
からのコードが含まれていません。これは、エントリ ポイントにインポートしただけだからです (例main.js
):
main.js
-------
import bar from './bar.js';
import baz from './baz.js';
bar.js
------
export default function bar() {
...
}
baz.js
------
export default function baz() {
...
}
main.js
コードを呼び出す関数が含まれているかbar
、baz
空のバンドル以上のものを取得しているかどうかを確認しましたが、foo がサードパーティ ベンダーからのスクリプトのコレクションであり、量を除けば、「アプリケーション エントリ ポイント」を持たない場合マニフェストファイルのようなものに、ロールアップは私が探しているものに対して間違った選択であるようです.
再度、感謝します!