【发布时间】:2013-10-16 18:39:31
【问题描述】:
我们刚刚在 Windows 中升级到 NPM 版本的 JSHint,我们的 CI 不会再因 JSHint 失败而失败。这感觉像是一个愚蠢的问题,但我想不通。
我们正在运行 NAnt 和 CCNet。当我们尝试从 NAnt 中运行 jshint.cmd 时,它会说路径错误。我无法在脚本中对路径进行硬编码,因为每个开发站(和 CI 服务器)都将 NPM 和 JSHint 安装在不同的位置(“C:\Users\me\AppData\Roaming\npm”)。
所以我们编写了一个 NAnt 调用的批处理文件,它调用 jshint.cmd。它现在运行 JSHint,但不会给出错误代码或正确失败。看起来我们的批处理文件的末尾在 jshint.cmd 失败后没有运行,并且看起来没有为 NAnt 设置要检查的错误级别。我也尝试在 NAnt 中检查 resultproperty,但没有成功。
这里有一些文件:
JSHint.build
<target name="JSHint">
<exec program="runjshint.cmd" basedir="${jshint.dir}" workingdir="${jshint.dir}">
<arg value="${scripts.dir}" />
</exec>
</target>
runjshint.cmd
jshint --reporter=reporter.js %1
REM Everything past here isn't run.
NAnt 输出
[exec] C:\work\ThirdParty\jshint>jshint --reporter=reporter.js ..\..\src\Scripts
[exec]
[exec]
[exec] jshint failed:
[exec]
[exec] ..\..\src\Scripts\app\ViewModels\FakeViewModel.js: line 62, col 31, 'FakeVariable' is not defined.
[exec] ..\..\src\Scripts\app\ViewModels\FakeViewModel.js: line 78, col 33, 'FakeVariable' is not defined.
[exec]
[exec] 2 errors
BUILD SUCCEEDED
请注意,即使 JSHint 失败,构建也会成功。
【问题讨论】:
-
一个好的开始,不幸的是 ERRORLEVEL 仍然是 0,即使我们找出了批处理文件的问题。谢谢!
标签: windows node.js batch-file nant jshint