Я пытаюсь выполнить задачи grunt через пакетный скрипт и вызываю grunt следующим образом:
call npm install
call npm install grunt
Однако, если это возвращает ошибку, то сборка VSTS на размещенном агенте сборки все еще показываеткак успешный (даже с зарегистрированной ошибкой в сценарии).У кого-нибудь есть хорошие примеры того, как заставить его возвращать ошибку в сборку?
Я смотрел на использование powershell, но пока безрезультатно, с кодом следующим образом:
В gruntfile.js:
grunt.initConfig({
shell: {
ps: {
options: {
stdout: true
},
command: 'powershell ../../errors.ps1'
}
}
});
grunt.registerTask('default', function() {
try {
grunt.task.run([
'less:desktop',
'less:tablet',
'less:smartphone',
'less:homepage_desktop',
'less:homepage_tablet']);
} catch(e) {
grunt.task.run([
'shell:ps']);
throw e;
}
});
В errors.ps1:
$URL_Format_Error = [string]"Error found in running grunt. Please investigate grunt logs"
Write-Error $URL_Format_Error -ErrorAction:Stop
return
Код, выполняемый в обработчике исключений, никогда не вызывается, и выводится предупреждение с ошибкой компиляциив файле .less, но PowerShell никогда не запускается.Есть ли способ, которым я могу подключиться к предупреждению и затем запустить свой powershell?
В качестве альтернативы, когда я пытаюсь добавить задачу grunt в определение сборки VSTS после пакетного сценария для запуска установки NPMЯ просто продолжаю получать следующую ошибку (даже после просмотра успешной установки NPM в пакетном скрипте):
Неустранимая ошибка: невозможно найти локальное ворчание
Следовательно,Я не уверен, смогу ли я выполнить задачу grunt в отдельной задаче, определяемой сборкой VSTS, если я использую размещенный агент сборки.Я склонен думать, что это сработало бы, только если бы у меня был свой собственный сервер сборки.