2

Ember-CLI を使用して ember サーバーを実行すると、JSLint から次のエラーが発生します。

[app_path]/filename.js: line 1, col 16, 'Ember' is not defined.

追加import Ember from 'ember';するとこれが修正されます。

これは私のすべてのファイルで今行く公式の方法ですか? ドキュメントには、この変更についてまだ言及されていません。

4

2 に答える 2

7

編集

ステファン・ペナー より:

[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 ファイルにも追加する必要があります。"

于 2014-06-27T02:44:45.857 に答える
6

Ember モジュールを明示的にインポートすることが、今では公式の方法のようです。Using Modules & the Resolver の下にあるEmber のドキュメントでは、 Ember を使用するときとEmber Data に対して明示的に指定する必要があると記載されています。import Emberimport DS

その理由を探していて、まだ何も見つかりませんでしたが、依存関係を明示し、プレーンな古い JavaScript オブジェクト ファイルを作成できるようにするためだと推測しています。

于 2014-06-20T09:33:16.260 に答える