을 제거 할 때 그냥 어제 일이 시작 뭔가 도움이되지 않는 오류를보고하여 꿀꺽-jshint 작업을 방해 스트립 디버그를 꿀꺽, 그것은 나에게 큰 두통의 원인.esprima.js/디버거 문
는 arcade.ly 내 구축의 일환으로 내 자바 스크립트 디버깅 코드를 제거합니다 모든 이상 jshint를 실행하는 check-scripts
작업이 있습니다
gulp.task('check-scripts', function() {
return gulp.src([
'src/static/scripts/common/pinjector.js',
'src/static/scripts/common/service.*.js',
'src/static/scripts/asteroids-starcastle/*.js',
'src/static/scripts/asteroids/asteroids.js',
'src/static/scripts/asteroids/app.js',
'src/static/scripts/starcastle/actor.*.js',
'src/static/scripts/starcastle/service.*.js',
'src/static/scripts/starcastle/starcastle.js',
'src/static/scripts/starcastle/app.js',
'src/static/scripts/space-invaders/actor.*.js',
'src/static/scripts/space-invaders/service.*.js',
'src/static/scripts/space-invaders/space-invaders.js',
'src/static/scripts/space-invaders/app.js',
'src/server/*.js',
])
.pipe(stripDebug())
.pipe(jshint({
laxbreak: true,
multistr: true
}))
.pipe(jshint.reporter('default'))
.pipe(jshint.reporter('fail'));
});
이 있다면이 절대적으로 잘 작동하고 있었다 어제까지 문제가 있으면 무엇이 잘못 되었는지 알려주는 데 도움이되는 jshint
오류가 발생합니다. 당신이 볼 수 있듯이
11:47:00] Starting 'check-scripts'...
events.js:154
throw er; // Unhandled 'error' event
^
Error: Line 30: Unexpected identifier
at constructError (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2406:21)
at createError (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2425:17)
at unexpectedTokenError (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2499:13)
at throwUnexpectedToken (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2504:15)
at expect (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2522:13)
at expectCommaSeparator (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2546:13)
at parseObjectInitializer (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:3052:17)
at inheritCoverGrammar (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2680:18)
at parsePrimaryExpression (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:3246:20)
at inheritCoverGrammar (/Library/WebServer/Documents/arcade/node_modules/esprima/esprima.js:2680:18)
, 거기에 유용한 정보가 없습니다 : 나는 gulp check-scripts
을 실행하면 이제, 문제는 나는 종종 이런 종류의 오류를 얻을이 있다면. 지금은 리팩토링하므로 변경 세트는 종종 여러 파일을 포함합니다. 여기서 문제는 esprima의 파서가 불행하다는 것을 알 수 있습니다. 그러나 어떤 파일이 파기되어 있는지, 어떤 코드 줄이 파 일인지 전혀 모릅니다.
나는, 결국 주석과 주석을 코드에 의해 반복적으로 주석과의 주석 라인을 check-scripts
과 gulp-checkscripts
를 다시 실행하여 알아낼 수 있지만, 그것은 분명히 기계에 의존의 비트입니다. 당신이 볼 수 있듯이
function masterSoundConfiguration() {
var masterConfig = {
elementCountForRapidRepeat: 6,
sfxMasterVolume: 0.4,
musicMasterVolume: 0.6,
sounds: [],
music: [] // <-- Missing comma
mergeIntoMaster: mergeIntoMaster
};
...
}
이 오류의 원인이 누락 된 쉼표있다 :
이 경우이 오류를 발생시킨 코드입니다.문제는 gulp-strip-debug
에 의한 것으로 보인다,하지만 난 단순히 사용하지 않으면이 jshint 때문에의 debugger
문을 불평 할 것이다. dev에서 사이트를 실행하려면 빌드해야하기 때문에 이것은 번거로운 작업입니다.
은 내가 gulp-strip-debug
을 비활성화하고 DEV는 빌드를 들어, debugger
문을 무시 jshint을 구성 할 수 있습니다 생각하지만, 더 나은 오류를보고 할 gulp-strip-debug
를 구성하는 방법은 무엇입니까, 또는이 버그/설계 결함/감독입니까?
어떤 통찰력/제안을 기꺼이받을 수있다.
감사합니다,
바트