7

私は大量の JS スパゲッティを持っています。パッケージ Control を介して sublimetext2 を使用するように既に構成してsublime-jslintおり、必要なコマンドライン スイッチを に渡して、jslint4java-2.0.1その魔法を実行する方法を認識しています。問題は、これらのファイルに貼り付けられたサードパーティのコードが含まれていることです。このコードは時間が重要であり、何よりも先にロードする必要があるため、ファイルの外に移動できません。

ドキュメントを調べjslint4javaたところ、スクリプトの特定のセクションを無視する方法が見つかりませんでした。私はサイトを検索しましたが、コード領域を無視することについて私が見つけた唯一のものは、jslint Web バージョンのものでした。

だから、私の質問は: javascript ファイルの特定の領域を無視する方法はありますか? 何らかの方法でその部分をサンドボックス化して、jslint が私に怒鳴らないようにすることができれば、警告を無視したくありません。

前もって感謝します。

4

1 に答える 1

5

JSLint は、解析中に制御コメントを使用して動作を制御します。1 つの方法は、サードパーティ スクリプトの前に関連するものをすべて無効にすることです。スクリプトの最後の行の後、再度有効にする必要があります。残念ながら、リンティング全体を無効にするためのコントロール コメントはありません。

2 番目のオプションは、それを別のファイルに入れることです。これは、実行したくないことを明示的に示します。ただし、状況によっては、このスクリプトが読み込まれているかどうかを知ることができる場合があります。

これはあなたには当てはまらないかもしれませんが、この質問を読んでいる他の人には当てはまるかもしれません。

  • ページ上の他のスクリプトの上にスクリプトを配置すると、後続のスクリプトが実行される前に常に読み込まれます。
  • 他のファイルでのみ定義されている特定の関数または変数のみを使用している場合は、タイプが期待どおりかどうかを確認できます

必要な関数/変数がロードされているかどうかをチェックする関数の例を次に示します (関数または変数が別の場所で定義されている場合は機能しません)。5 秒間に 10 回チェックします。

  • 両方のスクリプトを動的に呼び出している場合、またはそれらの順序を制御できず、これらの vars/func が他の場所で定義されていないことを確認できない場合は、依存するすべてのコードを関数にカプセル化し、ajax コールバックを使用して実行できます。コード。

これは、プレーンな JavaScript を使用して AJAX を処理する例です 。このスクリプトが AJAX で読み込まれたら、例の関数の 2 番目のパラメーターを使用して依存コードを呼び出します。

これは私が提供しなければならない最高の助けです。

于 2012-09-01T22:06:53.853 に答える