我在VS 2013(更新1)中安装了带有Web Essential 2013(今天为最新)的新MVC 5.1 Web应用程序项目。构建项目后,Web Essentials会扫描javascript文件,并将发现的任何问题发布到输出窗口中。对于一个全新的MVC 5.1项目,它会生成超过11,000条消息-确实没有用。
我尝试了两种方法来使其默认情况下忽略新MVC 5项目随附的有问题的javascript文件:
使用Web Essentials>编辑全局JSCS设置命令来打开我的用户配置文件目录中的.jscs.json文件。然后将“ excludeFiles”属性修改为[“ test / data / .js”,“ Scripts / jquery .js”]。
使用“ jquery * .js”在我的脚本文件夹中创建了一个.jshintignore文件。
这些方法都不会对生成的JSCS消息产生任何影响。我做错什么了吗,或者这是Web Essentials的问题?
更新4:
最新的Web Essentials 2013 1.9具有“对皮棉跑步者更好的忽略逻辑”,所有问题均已清除。您现在可以打开“在构建中运行”。它具有针对普通js库和精简js的默认忽略规则。以下excludeFiles
配置仍然有效,但不再需要。
更新3:
从https://github.com/madskristensen/WebEssentials2013/issues/603交叉我的帖子。
如果不需要JSHint和JSCS的功能,只需转到“工具-选项-Web Essentials-JavaScript”,将“在构建时运行”和“在保存时运行”设置为False。
如果要使用它们,请将“在构建时运行”保持为False,将“在保存时运行”设置为True。预览,打开和保存时,所有js均为JSHint和JSCS。通过此更改,您可以成功构建而不会降低速度。错误列表将仅填充当前打开的js的JSHint和JSCS项目。
默认设置下,JSHint不会在所有缩小版和某些通用js库上运行,但JSCS将始终运行。使用JSCS时,使用精简版js可能会使您延迟大约serval秒。如果您不想等待,请转到“ 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。它将停止“在构建时运行”功能。这意味着即使您打开它,它也不会在构建中运行。但是“在保存时运行True”将仍然并且实际上在预览,打开和保存时运行。excludeFiles的正确相对模式是**/Script/**
。
因此,针对精简js的命令排除规则将为:
"excludeFiles": ["**/Scripts/**.min.js", "**/Scripts/**.debug.js", "**/Scripts/**.intellisense.js", "**/Scripts/**-vsdoc.js"],
或者只是使用**/Script/**
排除所有。
<?xml
根据.min文件和其他文件上的JSHint / JSCS错误,该问题将在下一版本中解决。。因此,此模式应该是最终正确的选择,其中一个问题应该并且将在下一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文件生成另一个Build错误:
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>
我不知道如何避免。因此,也许最好的方法只是第一种简单的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句