VS 2013(Update 1)にWeb Essential 2013(現在の最新)がインストールされた新しいMVC 5.1 Webアプリプロジェクトがインストールされています。プロジェクトをビルドした後、Web EssentialsはJavaScriptファイルをスキャンし、見つかった問題がないかメッセージを出力ウィンドウに投稿します。まったく新しいMVC 5.1プロジェクトの場合、11,000を超えるメッセージが生成されますが、あまり役に立ちません。
デフォルトで新しいMVC 5プロジェクトに含まれている問題のあるJavaScriptファイルを無視するために、2つの方法を試しました。
Web Essentials> Edit Global JSCS Settingsコマンドを使用して、ユーザープロファイルディレクトリの.jscs.jsonファイルを開きました。次に、「excludeFiles」プロパティを["test/data/。js"、 "Scripts/jquery。js"]に変更しました。
"jquery * .js"を使用してScriptsフォルダーに.jshintignoreファイルを作成しました。
これらの方法はどちらも、生成されるJSCSメッセージに影響を与えていません。私は何か間違ったことをしていますか、これはWeb Essentialsの問題ですか?
更新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>
私はそれを避ける方法を知りません。したがって、おそらく最良の方法は、最初の簡単な方法にすぎません。
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/*"]
を除外したいものに置き換えてください。私にとっては魅力のように働きました。
。jscsrcのexcludeFilesオプションは正しい方法ですが、プロジェクトの相対パスではなく、完全なファイルシステムパスとして指定する必要があります。仕事に。 **だけではなく、先頭のスラッシュ/に注意してください。より具体的なフォルダをターゲットにすることもできますが、機能させるには/を含める必要があるようです。オプションを実際に理解するために、ノードファイルグロビングのドキュメントを調査できると思います。
私のマシンでは、Web Essentials 2013 for Update 2を使用して、次の手順ですべてのファイルのJSCSを無効にしました。
"excludeFiles": ["/**"],
と設定ファイルを保存しますVisual Studioを再起動する必要はありません。
Web Essentials 2013バージョン2.3では、この問題に対処する新しい方法が追加されています:.weignore。 http://vswebessentials.com/features/general#weignore または https://github.com/madskristensen/WebEssentials2013/pull/125 を参照してください。新しい方法は古い方法よりも優れています。これは、すべてのコンパイラとリンターを管理するための集中化された一貫した場所だからです。また、古い方法では、各ターゲットファイルをコンパイラとリンターで実行し、その後無視する必要があるため、より高速です。新しい方法は、Web Essentials自体を無視し、コンパイラーとリンターが実行する時間/ CPU /ディスクを減らします。また、同じことを行うために、各コンパイラーとリンター固有の構成形式を理解する必要はありません。