2016-08-28 5 views
0

このMeteorテンプレートコードは、meteor create myAppが呼び出されたときに生成されるデフォルトです。 main.jsでは最初の3行は、次のとおりです。Meteorアプリケーションの実行にインポートが必要です

import { Template } from 'meteor/templating'; 
import { ReactiveVar } from 'meteor/reactive-var'; 
import './main.html'; 

をしかし、私はそれらをコメントアウトすると、アプリがまだ実行されます。 docsを読んでも私の質問に答えることができませんでした。アプリがまだ実行されていないと、importのステートメントが必要なのはなぜですか?ありがとう

+0

app *は実行されますが、*希望の方法で*実行されますか? – Li357

+0

@AndrewL。あなたはより詳細な方法で_希望の方法を説明できますか? –

+0

HTMLとあなたがプログラムしたものはすべてロードされますか? @AndrewL。 – Li357

答えて

1

以前のバージョンのMeteorは、共有ライブラリへのアクセスにグローバル名前空間の使用に大きく依存していました。 Meteor 1.3では、Meteor's ES2015 moduleのサポートを利用できるようになりました。つまり、インポート/エクスポート機能を使用して、グローバルに頼ることなく、コードベースのさまざまな部分へのアクセスを公開することができます。インポート/エクスポートを使用することは、アプリケーションの一部を参照する推奨/推奨方法なので、meteor create機能がこれを実演するために更新されました。上記のように、上記のimportステートメントを削除することができます。また、後方互換性のために、TemplateおよびReactiveVarにグローバルにアクセスできます。しかし、これが将来変更される可能性があることに注意することは重要です.MeteorはES2015モジュールのサポートを完全に受け入れており、可能な範囲でグローバルの使用を完全に廃止する可能性があります。

Meteor 1.3では、アプリケーションの起動時に/importsディレクトリに格納されたアプリケーションコードが熱心に読み込まれなくなる新しい「遅延ロード」機能も導入されました。 /importsディレクトリに格納されたコードは、コードベース内の別の場所にあるimportステートメントで参照されている場合にのみロードされます。詳細はSpecial directoriesを参照してください。