Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将jshint作为构建过程的一部分进行自动化?_Javascript_Command Line_Tfs_Rhino_Jshint - Fatal编程技术网

Javascript 如何将jshint作为构建过程的一部分进行自动化?

Javascript 如何将jshint作为构建过程的一部分进行自动化?,javascript,command-line,tfs,rhino,jshint,Javascript,Command Line,Tfs,Rhino,Jshint,我想在所有javascript文件上自动运行JSHINT,作为持续集成环境的一部分(实际上,可能是TFS门控签入的一部分,但我还不确定,因为这取决于速度) 我试着使用rhino jshint,如下所示: java -jar js.jar jshint-rhino.js myFile.js 但是如何设置所需的JSHint选项呢?我知道我可以在myfile.js顶部的注释中列出它们,但是我有很多javascript文件,我不希望在所有源文件中重复这些选项。(或者JavaScript是否有我不知道的

我想在所有javascript文件上自动运行JSHINT,作为持续集成环境的一部分(实际上,可能是TFS门控签入的一部分,但我还不确定,因为这取决于速度)

我试着使用rhino jshint,如下所示:

java -jar js.jar jshint-rhino.js myFile.js
但是如何设置所需的JSHint选项呢?我知道我可以在
myfile.js
顶部的注释中列出它们,但是我有很多javascript文件,我不希望在所有源文件中重复这些选项。(或者JavaScript是否有我不知道的“包含”功能?)

我曾希望将
options.js
文件作为命令行上的参数传入,然后将
options.js
置于版本控制之下。但是我认为这在jshint-rhino.js中是不可能的

此外,在保存所有JavaScript文件时,我们使用一个“JSHint”来提示它们。但是这个工具不能在命令行上运行。我们希望两者兼而有之——在VisualStudio中运行JSHint并为CI构建实现自动化,然后在不复制选项的情况下(实际上是将选项置于版本控制之下)


所以问题是,其他人如何在他们的开发过程中自动化JSHint

由于您本质上希望在TFS2010构建过程中使用命令行活动,因此它实际上非常简单。您需要在要运行该工具的位置添加一个
InvokeProcess
workflow活动()


实际上,对于如何使用不同的命令行实用程序来实现这一点,有一个可用的方法,但您只需将其替换为自己的命令行实用程序即可。工作流活动甚至允许您指定一组可以传入的命令行参数。

请同时查看和

如果您想在运行TFS构建时检查Javascript,我建议您查看sharplinter:

它包含一个可执行文件,允许您使用JSLint/JSHint检查Javascript文件。要在TFS构建期间运行此操作,您可以创建一个可包含在工作流中的代码活动

Marcel de Vries从Techdays 2012发布的这段视频一步一步地介绍了自动构建过程,并演示了如何包含自定义活动


这是否只是一个在基于工作流的自动构建过程中要运行的命令行实用程序?@Ed-是的,总结一下。我现在正在使用SharpLinter,并将分析作为构建后事件的一部分运行。感谢InvokeProcess链接。我是TFS构建的新手,添加一个简单的命令行调用作为构建序列的一部分乍看起来很复杂——但也许它毕竟很简单。确实如此!这最终解决了您的问题吗?仍然将其称为构建后事件。它正在工作,而且速度很快,所以我还没有达到作为InvokeProcess(调用进程)来完成它的要求。事实上,我们正在使用SharpLinter。我们有一个批处理文件,它在给定的VisualStudio项目中查找所有javascript文件,并将它们发送给SharpLinter。我们将批处理文件称为VisualStudio项目的生成后事件。我们还无法升级到Visual Studio 2012-我们使用的是2010。这意味着在TFS构建期间不会检查您的代码,但只会在您的本地环境中检查代码。如果这对您有效,则无需更改它,但如果您与团队合作,则可能值得检查实际TFS构建中的错误。这篇文章是我整合sharplinter的出发点,所以即使它对你没有帮助,也许它对其他人也有帮助:)。哦,我同意-sharplinter很棒。但是,此解决方案不仅适用于本地环境—当后期生成事件失败时,TFS生成也会失败。因为它从命令行使用MSBuild构建项目,并且在TFS构建中使用的项目配置中存在ostBuild事件。这个解决方案对我们来说很好——一个由大约10名开发人员组成的团队。