7

目的

Cloud9 IDE が警告メッセージを表示しないようにします。

バックグラウンド

Cloud9 IDE を使用して JavaScript をコーディングしていますが、別のファイル (同じフォルダー内) のクラスを使用するたびに、次の警告メッセージが表示されます。

VarName が定義されていません。修正するか、/*global VarName*/ を追加してください

今、これは私を悩ませているので、修正したいと思います。

明らかな解決策は、コメント/*global VarName*/を追加してそれで終了することですが、これは良い習慣ではないと思います。

私が試したこと

調べた結果、JavaScript のimport機能に出会いました。理論的には、これにより、次のようなことを行うことができ、それでimport "myOtherJsFile"完了します。

他の多くの言語が同じアプローチを取っているため、これは問題の標準化された優れたソリューションです。

問題

ただし、上記の行を追加した後でも、警告が表示されます。消えません。

質問

  1. 私は何か間違ったことをしていますか?
  2. コードにコメントを追加せずに警告を削除する方法はありますか?
  3. 私の目的を達成する別の方法はありますか?
4

2 に答える 2

9

公式フォーラムでスレッドを作成した後、私が学んだことをここに投稿するのに十分な自信が持てました.

概要

問題を解決するための 4 つの方法が議論されました。

  1. プロジェクト内で変数の警告を無効にする
  2. .eslintrcすべてのグローバルを含むファイルの作成
  3. importとの使用export
  4. /*global varName*/ファイルの先頭にコメントを追加する

解決策 1

メッセージを回避するには、プロジェクト設定で「未定義の変数をマークする」オプションをオフにするだけです。

この解決策は機能しますが、マークしたい変数であっても、すべての未定義変数のマークを停止するだけです。このため、このアプローチはお勧めしません。

解決策 2

.eslintrc次のように、すべてのグローバルを含む think ファイルを作成することもできます。

{
    "globals": {
        "var1": true,
        "var2": false
    }
}

構成の詳細: http://eslint.org/docs/user-guide/configuring

このアプローチの問題は、グローバル変数を作成、削除、または変更するたびに、グローバル変数ファイルを更新する必要があることです。

これはすぐに面倒になる可能性があり、すぐに悪夢になる大規模プロジェクトへのメンテナンスの影響については説明しません。

私の見方では、技術的な解決策ですが、実用的ではありません。

解決策 3

JavaScript のみに依存し、他の言語のインポートおよびエクスポート機能と非常によく似ているため、推奨されるソリューションです。

ただし、このアプローチの問題は、回答を書いている時点で、ブラウザがキーワードexportimportキーワードもサポートしていないことです。

将来的にはこれが変わるかもしれませんが、今のところそのままなので、この解決策も使用できません。

解決策 4

部分を除外すると、ソリューション 1 と 2 は大きな副作用が発生しやすいか、大きなスケーリングの問題が発生するため、当面はこれを使用します。

副作用がなく、他のファイルとの独立性により非常にうまくスケーリングされます。最も重要なことは、ソリューション 3 が使用可能になると、コメントをimportキーワードの呼び出しに置き換えるのが非常に簡単になることです。

結論

当面は、ソリューション 4 がベスト プラクティスです。ただし、ブラウザーが解決策 3 のサポートを追加したら、解決策 4 の代わりにそれを使用する必要があります。

クレジット

Harutyun Amirjanyan の粘り強さ、忍耐、そしてこの問題を解決するためのガイダンスに特に感謝します。

于 2016-07-15T11:13:43.273 に答える