公式フォーラムでスレッドを作成した後、私が学んだことをここに投稿するのに十分な自信が持てました.
概要
問題を解決するための 4 つの方法が議論されました。
- プロジェクト内で変数の警告を無効にする
.eslintrc
すべてのグローバルを含むファイルの作成
import
との使用export
/*global varName*/
ファイルの先頭にコメントを追加する
解決策 1
メッセージを回避するには、プロジェクト設定で「未定義の変数をマークする」オプションをオフにするだけです。
この解決策は機能しますが、マークしたい変数であっても、すべての未定義変数のマークを停止するだけです。このため、このアプローチはお勧めしません。
解決策 2
.eslintrc
次のように、すべてのグローバルを含む think ファイルを作成することもできます。
{
"globals": {
"var1": true,
"var2": false
}
}
構成の詳細: http://eslint.org/docs/user-guide/configuring
このアプローチの問題は、グローバル変数を作成、削除、または変更するたびに、グローバル変数ファイルを更新する必要があることです。
これはすぐに面倒になる可能性があり、すぐに悪夢になる大規模プロジェクトへのメンテナンスの影響については説明しません。
私の見方では、技術的な解決策ですが、実用的ではありません。
解決策 3
JavaScript のみに依存し、他の言語のインポートおよびエクスポート機能と非常によく似ているため、推奨されるソリューションです。
ただし、このアプローチの問題は、回答を書いている時点で、ブラウザがキーワードexport
もimport
キーワードもサポートしていないことです。
将来的にはこれが変わるかもしれませんが、今のところそのままなので、この解決策も使用できません。
解決策 4
部分を除外すると、ソリューション 1 と 2 は大きな副作用が発生しやすいか、大きなスケーリングの問題が発生するため、当面はこれを使用します。
副作用がなく、他のファイルとの独立性により非常にうまくスケーリングされます。最も重要なことは、ソリューション 3 が使用可能になると、コメントをimport
キーワードの呼び出しに置き換えるのが非常に簡単になることです。
結論
当面は、ソリューション 4 がベスト プラクティスです。ただし、ブラウザーが解決策 3 のサポートを追加したら、解決策 4 の代わりにそれを使用する必要があります。
クレジット
Harutyun Amirjanyan の粘り強さ、忍耐、そしてこの問題を解決するためのガイダンスに特に感謝します。