グローバルウィンドウオブジェクトにプロパティを割り当てていますが、eslintを実行すると次のようになります。
"window"が定義されていません
私はこれ をeslintのドキュメント で見ています。
次のコードでは、windowをテスト対象のルールをトリガーしないコードのグローバル変数として定義しています。
valid: [
{
code: "window.alert()",
globals: [ "window" ]
}
]
Eslintが "window"をグローバル変数として使えるようにするために、package.jsonファイルにこのようなものを追加しようとしましたが、私は間違ったことをしているに違いありません。ドキュメントから、私は別のファイルでこのようなことをする必要があるかもしれないようですが、package.jsonファイルでいくつかの許可されたグローバル変数を定義する方法はありますか?
このページで見つけました: http://eslint.org/docs/user-guide/configuring
Package.jsonでは、これは機能します。
"eslintConfig": {
"globals": {
"window": true
}
}
window
を含む組み込みのenvironment: browser
があります。
例:
"env": {
"browser": true,
"node": true,
"jasmine": true
},
詳細情報: http://eslint.org/docs/user-guide/configuring.html#specifying-environments
プロジェクトルートに.eslintrc
を追加します。
{
"globals": {
"document": true,
"foo": true,
"window": true
}
}
あなたの。eslintrc.jsonは以下のテキストを含むべきです。
このようにESLintはあなたのグローバル変数について知っています。
{
"env": {
"browser": true,
"node": true
}
}
私は彼がインラインバージョンを要求していないことを知っていますが、この質問には100,000回近くの訪問があり、私はそれを探してここに落ちました。
ESLintが--no-inline-config
フラグを付けて実行されていないことを確認し、コードの好きなところにこれを記述してください(わかりやすくするために、ファイルの先頭に記述してください)。
/* eslint-env browser */
これはESLintにあなたの作業環境がブラウザであることを伝えます、それで今それはものがブラウザの中にあるものを知っていて、そしてそれに応じて適応します。
たくさんの 環境 があり、同時に複数のものを使うことができます(/* eslint-env browser, node */
のようにインラインでも、ESLintの設定ファイルからも)。
環境は、事前定義されているグローバル変数を定義します。利用可能な環境は以下のとおりです。
browser
- ブラウザのグローバル変数.node
- Node.jsグローバル変数とNode.jsスコープ.commonjs
- CommonJSグローバル変数とCommonJSスコープ(Browserify/WebPackを使用するブラウザ専用コードにこれを使用します)。shared-node-browser
- ノードとブラウザの両方に共通のグローバル。[...]
Angularを使用している場合は、次のように実行できます。
"env": {
"browser": true,
"node": true
},
"rules" : {
"angular/window-service": 0
}