如何配置Web Essentials 2013以忽略文件?

Jim*_*amb 26 web-essentials jscs

我在VS 2013(更新1)中安装了一个新的MVC 5.1 Web应用程序项目,其中安装了Web Essential 2013(最新版本).构建项目后,Web Essentials会扫描javascript文件并将消息发布到输出窗口以查找找到的任何问题.对于一个全新的MVC 5.1项目,它会生成超过11,000条消息 - 这些消息并不真正有用.

我尝试了两种方法来忽略默认情况下新MVC 5项目中包含的有问题的javascript文件:

  1. 使用Web Essentials>编辑全局JSCS设置命令在我的用户配置文件目录中打开.jscs.json文件.然后将"excludeFiles"属性修改为["test/data/.js","Scripts/jquery .js"].

  2. 使用"jquery*.js"在我的Scripts文件夹中创建了一个.jshintignore文件.

这些方法都没有对生成的JSCS消息产生任何影响.我做错了什么,或者这是Web Essentials的问题?

Chr*_*rng 18

更新4:

最新的Web Essentials 2013 1.9具有"更好地忽略lint跑步者的逻辑",所有问题都被清除.您现在可以打开"Run on build".它具有常见js库和缩小js的默认忽略规则.以下excludeFiles配置仍然有效,但不再需要.

更新3:

https://github.com/madskristensen/WebEssentials2013/issues/603开始发表我的帖子.

如果您不需要JSHint和JSCS的功能,只需转到"工具 - 选项 - Web Essentials - JavaScript",将"Run on build"和"Run on save"设置为False.

如果您想使用它们,请将"Run on build"保持为False,将"Run on save"设置为True.所有js将是JSHint和JSCS,同时预览,打开和保存.通过此更改,您可以成功构建而不会减速.错误列表只会填充当前打开的js的JSHint和JSCS项目.

默认情况下,JSHint不会在所有缩小和一些常见的js库上运行,但JSCS将始终运行.虽然JSCS,它可能会延迟你使用缩小的js的serval秒.如果您不想等,请转到"Web Essentials - 编辑全局JSCS设置".更改

"excludeFiles": ["test/data/*.js"],
Run Code Online (Sandbox Code Playgroud)

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],
Run Code Online (Sandbox Code Playgroud)

仅在缩小的js上跳过JSCS.或改为

"excludeFiles": ["**"],
Run Code Online (Sandbox Code Playgroud)

完全停止JSCS,只保持JSHint运行.

因为您可以编写自己的规则来排除那些您不需要的规则.只需将双星放在开头,使用'/'而不是'\',其他部分只使用单星作为通配符.喜欢"**/Scripts/*.js".

使用排除规则,它仍然会为每个js生成一个xml信息项,稍后会修复(希望如此),但最后你可以开始编码.

最后,你可以升级到1.8.5,但它只能在运行时停止"Run on build"."保存时运行"仍然需要这些设置.所以它不会改变我在这里说的话.

希望这些信息是正确和有用的,当前版本为1.8和1.8.5.


更新1:

安装新版本1.8.5.它将停止"Run on build"功能.这意味着即使你打开它,它也不会在构建上运行.但是"Run on save True"仍然会在预览,打开和保存时运行.excludeFiles的正确相对模式是**/Script/**.

因此,对于缩小的js的推荐排除规则将是:

    "excludeFiles": ["**/Scripts/**.min.js", "**/Scripts/**.debug.js", "**/Scripts/**.intellisense.js", "**/Scripts/**-vsdoc.js"],
Run Code Online (Sandbox Code Playgroud)

或者只是用**/Script/**它们来排除它们.

<?xml根据.min文件和其他文件的JSHint/JSCS错误,下一版本将解决这个问题.因此,这种模式应该是最终的模式,其中一个问题应该并将在下一个Web Essentials版本中修复.或者也许接下来我们将提供一个好的默认excludeFiles规则.


更新2:

更好的一个:

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],
Run Code Online (Sandbox Code Playgroud)

排除所有缩小的js,无论它在哪里.


我找到的简单方法是转到"工具 - 选项 - Web Essentials - JavaScript",将Run on Build/Save设置为False.

另一种方法是转到"Web Essentials - 编辑全局JSCS设置",以设置excludeFiles.

但是多个excludeFiles是错误的语法.应该使用["a","b"]语法.

并且应该使用路径分隔符'/'的绝对路径(在全局设置?)时,不允许使用'\'.

子目录没用,你应该指定每一个路径.

这样的有效设置如下:

"excludeFiles": ["C:/Solution/Project/Scripts/*", "C:/Solution/Project/Scripts/kendo/*"]
Run Code Online (Sandbox Code Playgroud)

但是这种方式会为每个js文件生成另一个Build错误:

JSCS parse error: <?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>
Run Code Online (Sandbox Code Playgroud)

和每个js文件的信息项:

<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>
Run Code Online (Sandbox Code Playgroud)

我不知道如何避免它.所以也许最好的方法就是第一个简单的方法.


小智 7

安装KendoUI后我遇到了同样的问题.基本上不可能运行该项目.我通过转到Web Essentials - >编辑全局JSCS设置并添加:

"excludeFiles": ["Scripts/kendo/*"]
Run Code Online (Sandbox Code Playgroud)

"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
    }
}
Run Code Online (Sandbox Code Playgroud)

只需将["Scripts/kendo/*"]您想要排除的内容替换为.对我来说就像一个魅力.