간단한 수정은 좀 더 우아하게 에러를 처리하기 위해 꿀꺽 - 배관공을 사용하는 것입니다 :이 업데이트되지 않도록 축소 된 파일을 방지 할 수 있기 때문에 개인적으로
var plumber = require("gulp-plumber");
gulp.task('scripts',() => {
return gulp.src('assets/js/src/*.js')
.pipe(plumber())
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish', {beep: true}))
.pipe(concat('main.js'))
.pipe(gulp.dest('assets/js/build/'))
.pipe(uglify())
.pipe(gulp.dest('assets/js/'))
.pipe(browserSync.stream({stream: true}));
});
, 나는 그 솔루션을 좋아하지 않는다. 다음은 내가 추천하는 내용입니다.
var jshintSuccess = function (file) {
return file.jshint.success;
}
gulp.task('scripts',() => {
return gulp.src('assets/js/src/*.js')
.pipe(sourcemaps.init())
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish', {
beep: true
}))
.pipe(gulpif(jshintSuccess, uglify()))
.pipe(concat('main.js'))
.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest('assets/js/'))
.pipe(browserSync.stream({
stream: true
}));
});
먼저 여러 목적지에 쓰지 않습니다. 대신 소스 맵을 사용하므로 코드가 필요하지 않습니다. 둘째, 조건 적으로 jshint의 결과에 따라 uglify를 통해 코드를 파이프하는 경우 gulp-if를 사용합니다. 오류가있는 코드는 uglify를 우회하여 대상 파일로 계속 전달합니다.
이제 개발자 도구를 사용하여 검사하고 디버그 할 수 있습니다.
참고 : 저는 로컬 개발에만 권장합니다. 나는이 코드를 연속 통합 파이프 라인에 연결하지 않을 것입니다. 왜냐하면 여러분은 코드를 생산에 투입하기를 원하기 때문입니다. 다른 작업을 설정하거나 다른 gulp-if 조건을 추가하여 환경 변수에 따라 빌드 된 코드가 작성되지 않도록하십시오.
효과가있었습니다. 고마워요 :) – jst16