gpt4 book ai didi

windows - 对于 CI,如何从 JSHint 的 NPM 版本中获取错误代码 (Windows)?

转载 作者:可可西里 更新时间:2023-11-01 09:34:16 25 4
gpt4 key购买 nike

我们刚刚在 Windows 中升级到 JSHint 的 NPM 版本,我们的 CI 不会再因 JSHint 失败而失败。这感觉像是一个愚蠢的问题,但我想不通。

我们正在运行 NAnt 和 CCNet。当我们尝试从 NAnt 中运行 jshint.cmd 时,它失败并指出路径错误。我无法在脚本中对路径进行硬编码,因为每个开发站(和 CI 服务器)都将 NPM 和 JSHint 安装在不同的位置(“C:\Users\me\AppData\Roaming\npm”)。

所以我们写了一个批处理文件,NAnt 调用它,调用 jshint.cmd。它现在运行 JSHint,但不会给出错误代码或正常失败。看起来在 jshint.cmd 失败后我们的批处理文件的末尾没有运行,而且看起来没有为 NAnt 设置错误级别来检查。我也试过在 NAnt 中检查结果属性,但没有成功。

这里有几个文件:

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 失败,构建也成功了。

最佳答案

我在另一篇关于 SO 的帖子中找到了答案:https://stackoverflow.com/a/10359327/227349

<!--Next arg: forces node's stderror and stdout to a temporary file-->
<arg line=" &gt; _tempfile.out 2&lt;&amp;1"/>

<!--Next arg: If command exits with an error, then output the temporary file to stdout, -->
<!--delete the temporary file and finally exit with error level 1 so that -->
<!--the apply task can catch the error if @failonerror="true" -->
<arg line=" || (type _tempfile.out &amp; del _tempfile.out &amp; exit /b 1)"/>

<!--Next arg: Otherwise, just type the temporary file and delete it-->
<arg line=" &amp; type _tempfile.out &amp; del _tempfile.out &amp;"/>

关于windows - 对于 CI,如何从 JSHint 的 NPM 版本中获取错误代码 (Windows)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com