Ember-Cli を使用する小さな EmberJS アプリケーションがあります。このアプリケーションには、bower 依存関係にあるプライベート ES6 ライブラリがあります。基本的に、ライブラリをインポートして、どこでも使用したいと考えています。
間違っていなければ、ライブラリをトランスパイルしてbrocfile.js
、後で使用する必要があります。残念ながら、具体的な情報はあまり提供できませんが、できるだけ明確に説明できるよう最善を尽くします。
私の外部ライブラリの名前main-lib
と構造は次のとおりです (別のプロジェクトで動作しています)。
- バウアーコンポーネント
- メインライブラリ
- api.js
- メイン.js
- メッセージ.js
- メインライブラリ
main.js ファイルには次の内容が含まれています。
import Api from 'main/api';
import Message from 'main/message';
var main = {};
main.api = Api;
main.message = Message;
export default main;
つまり、私がやりたいのは、アプリケーションで、main
それに含まれるさまざまな関数をインポートして使用することです。
たとえば、ある emberjs コントローラーの場合:
import Main from 'main';
//use Main here
そのために、私はbrocfile.jsで次のことをすることを考えました。
var tree = 'bower_components/main-lib';
var ES6Modules = require('broccoli-es6modules');
var amdFiles = new ES6Modules(tree, {
format: 'amd',
bundleOptions: {
entry: 'main.js',
name: 'mainLib'
}
});
ただし、これは何もしません。基本的に、トランスパイルされたファイルを、ライブラリをインポートして使用できる場所に含めるvendor.js
か、ライブラリを使用できる場所に置く必要があります。
何かが欠けているのですが、それが何なのか特定できません。
編集1:brocfile.js の最後に次の行を追加します。
mergeTrees = require('broccoli-merge-trees')
module.exports = mergeTrees([app.toTree(), amdFiles]);
次のような ES5 を取得できます。
define(['main/api', 'main/message'], function(api, message) {
var main = {};
main.api = Api;
main.message = Message;
var _main = main;
return _main;
});
問題は、インポートもされないことですmain/api
。main/message
必要なファイルごとにコードを繰り返す必要がありますか?
また、ファイルは連結されずvendor.js
、単純にルートにあります。/dist
ベストアンサー1
次のものがあります: - ただし、説明されているimport Api from 'main/api'
フォルダーは表示されません- フォルダーは...のみです。main
main-lib
main/api
とmain/message
は実際には存在しないため、含まれていないのでしょうか?ファイル内でmain-lib/api
と を使用する必要があるかもしれません。main-lib/message
main.js