Ember-CLI を使用して ember サーバーを実行すると、JSLint から次のエラーが発生します。
[app_path]/filename.js: line 1, col 16, 'Ember' is not defined.
追加import Ember from 'ember';
するとこれが修正されます。
これは私のすべてのファイルで今行く公式の方法ですか? ドキュメントには、この変更についてまだ言及されていません。
編集
ステファン・ペナー より:
[Ember] を [.jshintrc ファイルから] 明示的に除外しました。代わりに Ember をインポートしてください。
es6 としてさらに多くの ember を公開する予定です。いつか、これにより、使用していない ember の部分をツールで削除できるようになります。その結果、ビルドが小さくなります。
それでも、その日までは、それを入れる手間が省けるでしょう.jshintrc
。
時代遅れの答え
.jshintrc
ファイル (または) で、tests/.jshintrc
各モジュールで定義する必要のないグローバル名前空間にあるものを predef オブジェクトに追加します。例えば:
{
"predef": {
"document": true,
"window": true,
"SprintStatusENV": true,
"Ember": true, // Added
"$": true, // ADDED
"Modernizr": true // ADDED
},
"browser" : true,
"boss" : true,
"curly": true,
"debug": false,
"devel": true,
"eqeqeq": true,
"evil": true,
"forin": false,
"immed": false,
"laxbreak": false,
"newcap": true,
"noarg": true,
"noempty": false,
"nonew": false,
"nomen": false,
"onevar": false,
"plusplus": false,
"regexp": false,
"undef": true,
"sub": true,
"strict": false,
"white": false,
"eqnull": true,
"esnext": true,
"unused": true
}
この例では、Ember (Em も定義できます)、'$' を使用する jQuery、および Modernizr を定義します。これにより、端末に表示される jshint エラー メッセージが停止します。
これはember-cli docsごとです:
「グローバル名前空間 (moment.js など) に書き込む外部ライブラリを使用する場合は、それらをプロジェクトの .jshintrc ファイルの predef セクションに追加し、その値を true に設定する必要があります。テストで lib を使用する場合、tests/.jshintrc ファイルにも追加する必要があります。"
Ember モジュールを明示的にインポートすることが、今では公式の方法のようです。Using Modules & the Resolver の下にあるEmber のドキュメントでは、 Ember を使用するときとEmber Data に対して明示的に指定する必要があると記載されています。import Ember
import DS
その理由を探していて、まだ何も見つかりませんでしたが、依存関係を明示し、プレーンな古い JavaScript オブジェクト ファイルを作成できるようにするためだと推測しています。