3

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 は失敗しましたが、ビルドは成功したことに注意してください。

4

1 に答える 1