LoginSignup
6
6

More than 5 years have passed since last update.

Meteor 開発者がおさえておきたい「ファイルの読み込み順番(File Load Order)」

Posted at

File Load Order

  • Meteorではファイルの読み込み順番に影響を受けないようなコードを書くのが一番いい
    • 読み込み順番に影響を受けるようなコードはパッケージ化する(オススメ!)
    • 読み込みを明示的に制御できる場合は Meteor.startup を使用する
  • しかしアプリケーションによっては、読み込み順番の依存関係を避けられない場合がある
  • Meteor にはいくつかのファイル読み込み順番に関するルールが存在している
    • そのルールは以下の通り

File Load Order ルール

ルール1. HTMLテンプレートファイルは常に何よりも先に読み込まれる
ルール2. ファイル名が「main」から始まるファイルは 最後 に読み込まれる
ルール3. libディレクトリ内にあるファイルが次に読み込まれる
ルール4. 深いパスにあるファイルが次に読み込まれる
ルール5. ファイルはアルファベット順に読み込まれる

数字が小さいルールの方が優先度は高い。
また、ルール1から順番に適用される。

Example

以下のようなファイル構成だった場合、

.
├── client/
│   ├── feature-y.js
│   ├── lib/
│   │   ├── methods.js
│   │   └── styles.js
│   └── main.js
├── feature-x.js
├── lib/
│   ├── collections.js
│   └── feature/
│       └── styles.js
├── main.html
└── nav.html

これは以下の順番で読み込まれる。

nav.html
main.html   
client/lib/methods.js 
client/lib/styles.js  
lib/feature/styles.js
lib/collections.js
client/feature-y.js
feature-x.js
client/main.js

ポイント

  • HTMLテンプレートである main.html と nav.html はルール1により js ファイルより先に読み込まれる
  • ルール2により、main.html が nav.html よりも後に読み込まれる
    • ルール5のアルファベット順で main.html は nav.html よりも前になるが、ルール2のほうが優先度が高いため、nav.html の方が先に読み込まれる
  • ルール4により、ディレクトリ階層が深いファイルから先に読み込まれる
  • ルール4では client/lib/styles.js と lib/feature/styles.js は同一の優先度だが、ルール5によりclient/lib/styles.js の方が先に読み込まれる
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6