web-dev-qa-db-ja.com

ファイルを無視するようにWeb Essentials 2013を構成するにはどうすればよいですか?

VS 2013(Update 1)にWeb Essential 2013(現在の最新)がインストールされた新しいMVC 5.1 Webアプリプロジェクトがインストールされています。プロジェクトをビルドした後、Web EssentialsはJavaScriptファイルをスキャンし、見つかった問題がないかメッセージを出力ウィンドウに投稿します。まったく新しいMVC 5.1プロジェクトの場合、11,000を超えるメッセージが生成されますが、あまり役に立ちません。

デフォルトで新しいMVC 5プロジェクトに含まれている問題のあるJavaScriptファイルを無視するために、2つの方法を試しました。

  1. Web Essentials> Edit Global JSCS Settingsコマンドを使用して、ユーザープロファイルディレクトリの.jscs.jsonファイルを開きました。次に、「excludeFiles」プロパティを["test/data/。js"、 "Scripts/jquery。js"]に変更しました。

  2. "jquery * .js"を使用してScriptsフォルダーに.jshintignoreファイルを作成しました。

これらの方法はどちらも、生成されるJSCSメッセージに影響を与えていません。私は何か間違ったことをしていますか、これはWeb Essentialsの問題ですか?

26
Jim Lamb

更新4:

最新のWeb Essentials 2013 1.9には、「lintランナーの無視ロジックの改善」があり、すべての問題が解決されています。 「ビルド時に実行」をオンにできます。一般的なjsライブラリと縮小jsのデフォルトの無視ルールがあります。次のexcludeFiles configは引き続き機能しますが、不要になりました。

更新3:

https://github.com/madskristensen/WebEssentials2013/issues/6 から私の投稿を渡ります。

JSHintとJSCSの機能が必要ない場合は、「ツール-オプション-Web Essentials-JavaScript」に移動し、「ビルド時に実行」および「保存時に実行」をFalseに設定します。

それらを使用する場合は、「ビルド時に実行」をFalseのままにし、「保存時に実行」をTrueに設定します。プレビュー、開いて保存している間、すべてのjsはJSHintおよびJSCSになります。この変更により、速度を落とすことなく正常にビルドできます。エラーリストには、現在開かれているjsのJSHintおよびJSCSアイテムのみが表示されます。

デフォルト設定では、JSHintはすべての縮小された一部の一般的なjsライブラリでは実行されませんが、JSCSは常に実行されます。 JSCSの場合、縮小されたjsを使用すると、サーバの秒数が遅れることがあります。待ちたくない場合は、「Web Essentials-グローバルJSCS設定の編集」に進んでください。変化する

"excludeFiles": ["test/data/*.js"],

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

縮小されたjsでのみJSCSをスキップします。またはに変更

"excludeFiles": ["**"],

jSCSを完全に停止するには、JSHintのみを実行します。

当然、不要なルールを除外する独自のルールを作成できます。最初にダブルスターを付け、 '\'の代わりに '/'を使用します。他の部分はワイルドカードにシングルスターを使用します。 "**/Scripts/*.js"のように。

Excludeルールを使用しても、各jsのxml情報項目が生成されますが、後で修正されると(うまくいけば)、ようやくコーディングを開始できます。

ついに、1.8.5にアップグレードできますが、「ビルド時に実行」が停止するだけです。 「保存時に実行」には、これらの設定が必要です。だから私がここで言うことは変わらない。

現在のバージョン1.8と1.8.5では、これらの情報が正しく役立つことを願っています。


更新1:

新しいバージョン1.8.5をインストールします。 「ビルド時に実行」機能を停止します。つまり、これをオンにしても、ビルド時に実行されません。ただし、「Run on save True」は、実際にプレビュー、オープン、および保存時に実行されます。 excludeFilesの正しい相対パターンは**/Script/**です。

したがって、縮小されたjsの除外コマンドの推奨ルールは次のようになります。

    "excludeFiles": ["**/Scripts/**.min.js", "**/Scripts/**.debug.js", "**/Scripts/**.intellisense.js", "**/Scripts/**-vsdoc.js"],

または、**/Script/**を使用してすべてを除外します。

。minファイルおよびその他のJSHint/JSCSエラー? によると、<?xmlの問題は次のバージョンで修正される予定です。したがって、このパターンは最終的に正しいものである必要があり、1つの問題が次のWeb Essentialsバージョンで修正されるはずです。または、多分次のWEは、適切なデフォルトのexcludeFilesルールを提供します。


更新2:

より良いもの:

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

それがどこにあってもすべての縮小されたjsを除外します。


私が見つけた簡単な方法は、「ツール-オプション-Web Essentials-JavaScript」に移動し、「ビルド/保存時に実行」をFalseに設定します。

別の方法は、「Web Essentials-グローバルJSCS設定の編集」に移動して、excludeFilesを設定することです。

ただし、複数のexcludeFilesは間違った構文です。 ["a"、 "b"]構文を使用する必要があります。

また、絶対パスを使用する必要があります(グローバルでの設定中ですか?)パス区切り '/'、 '\'は使用できません。

サブディレクトリは不要です。すべてのパスを指定する必要があります。

したがって、次のような有効な設定:

"excludeFiles": ["C:/Solution/Project/Scripts/*", "C:/Solution/Project/Scripts/kendo/*"]

しかし、この方法では、jsファイルごとに別のビルドエラーが生成されます。

JSCS parse error: <?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>

そしてjsファイルごとの情報アイテム:

<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>

私はそれを避ける方法を知りません。したがって、おそらく最良の方法は、最初の簡単な方法にすぎません。

18
ChrisTorng

KendoUIをインストールした後も同じ問題が発生しました。プロジェクトを実行することは基本的に不可能でした。 Web Essentials->グローバルJSCS設定を編集して追加することで解決しました:

"excludeFiles": ["Scripts/kendo/*"]

"excludeFiles": ["test/data/*.js"]エントリの下。

.jscs.jsonファイルは次のようになります。

{
"requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"],
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
"disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"requireRightStickedOperators": ["!"],
"requireLeftStickedOperators": [","],
"disallowImplicitTypeConversion": ["string"],
"disallowKeywords": ["with"],
"disallowMultipleLineBreaks": true,
"disallowKeywordsOnNewLine": ["else"],
"excludeFiles": ["test/data/*.js"],
"excludeFiles": ["Scripts/kendo/*"]
"validateJSDoc": {
    "checkParamNames": true,
    "requireParamTypes": true
    }
}

["Scripts/kendo/*"]を除外したいものに置き換えてください。私にとっては魅力のように働きました。

7
Nikolai Manek

。jscsrcexcludeFilesオプションは正しい方法ですが、プロジェクトの相対パスではなく、完全なファイルシステムパスとして指定する必要があります。仕事に。 **​​だけではなく、先頭のスラッシュ/に注意してください。より具体的なフォルダをターゲットにすることもできますが、機能させるには/を含める必要があるようです。オプションを実際に理解するために、ノードファイルグロビングのドキュメントを調査できると思います。

私のマシンでは、Web Essentials 2013 for Update 2を使用して、次の手順ですべてのファイルのJSCSを無効にしました。

  • Web Essentialsメニュー->グローバルJSCS設定(.jscsrc)を選択...
  • 追加 "excludeFiles": ["/**"],と設定ファイルを保存します
  • 問題のJSファイルに対して手動でJSCSを実行するか、再度保存する(依存するツール->オプション-> Web Essentials-> JavaScript-> Linter-> Run on saveオプション

Visual Studioを再起動する必要はありません。

Web Essentials 2013バージョン2.3では、この問題に対処する新しい方法が追加されています:.weignore。 http://vswebessentials.com/features/general#weignore または https://github.com/madskristensen/WebEssentials2013/pull/125 を参照してください。新しい方法は古い方法よりも優れています。これは、すべてのコンパイラとリンターを管理するための集中化された一貫した場所だからです。また、古い方法では、各ターゲットファイルをコンパイラとリンターで実行し、その後無視する必要があるため、より高速です。新しい方法は、Web Essentials自体を無視し、コンパイラーとリンターが実行する時間/ CPU /ディスクを減らします。また、同じことを行うために、各コンパイラーとリンター固有の構成形式を理解する必要はありません。

2
ChrisTorng