2016-04-05 10 views
0

/importsの中に私のコレクションを定義したので、どうすれば私のパッケージにアクセスさせることができますか? api.addFilesとの依存関係を宣言Error: Cannot find module '/imports/collections'Meteorのアプリケーションファイルをパッケージにインポートするには?

    • 実行import collections from '/imports/collections'またはrequire('/imports/collections')結果は、パッケージの外にあるファイルに許可されていません。

  • 答えて

    0

    パッケージはコンパイル時に定義され、appsコレクションは実行時に定義されます。コンパイル時に実行時データにアクセスすることはできません。

    パッケージのコンストラクタをコレクションのリストとともに呼び出す必要があります。

    // packages/myFixturesPackage/startup.js 
    
    import collections from '/imports/collections/index.js'; 
    
    Meteor.startup(
    
    Package['myFixturesPackage'].collections = require('/imports/collections/index.js'); 
    
    fixtures.populate(Package['myFixturesPackage'].collections);); 
    

    index.jsは(パッケージのための時間を実行される)は、メインアプリケーションで定義されているすべてのcolllectionsを含むコレクションの配列をエクスポートし、それを次いでオブジェ器具を露出モジュールに渡されます。

    +0

    インポートはスタートアップ関数内で実行する必要があります。これは実行時に実行されることを保証する唯一の方法です なぜ私はインポートの代わりにrequireを使用しました 答えに書いた方法で私に同じエラーが発生します。 私はあなたの答えを受け入れることができるように修正してください:) – zVictor

    +0

    完了...しかし、私は流星のコミットを読んで、あなたは条件付きの輸入をしていない場合は、輸入ですべてを行うことができるはずです。パッケージからこのコードを追加していますか?それともアプリに入っていますか?このタイプのコードは、パッケージではなくアプリ内にある必要があります。 – Mascarpone

    関連する問題