vscode unused react instalar configurar como gulp jshint

gulp - unused - jshint vs eslint



gulp-jshint: ¿Cómo fallar la compilación? (2)

Esto funciona para mi. Tengo la misma tarea trilla:

return gulp.src([''./src/**/*.js'', ''./docs_src/**/*.js'']) .pipe(jshint()) .pipe(jshint.reporter(''jshint-stylish'')) .pipe(jshint.reporter(''fail''))

y esto es lo que sucede:

$ gulp --version [11:03:41] CLI version 3.9.0 [11:03:41] Local version 3.9.0 [14559:3392 - 0:2151] 11:03:41 [tony@tony-lin:o +1] ~/work/solo/fsstatic2 (master) $ cat package.json { "name": "fsstatic2", "version": "0.0.0", "description": "fsstatic", "author": "FreedomSponsors", "devDependencies": { "gulp": "~3.9.0", "gulp-concat": "~2.5.2", "gulp-linker": "~0.1.7", "gulp-webserver": "~0.9.1", "yargs": "~3.12.0", "gulp-sass": "~2.0.1", "gulp-ng-templates": "0.0.6", "gulp-ngtemplate": "~0.2.5", "gulp-htmlmin": "~1.1.3", "merge-stream": "~0.1.7", "gulp-copy": "0.0.2", "gulp-jshint": "~1.11.0", "jshint-stylish": "~2.0.1" } } [14559:3392 - 0:2152] 11:04:01 [tony@tony-lin:o +1] ~/work/solo/fsstatic2 (master) $ gulp jshintall [11:04:11] Using gulpfile ~/work/solo/fsstatic2/gulpfile.js [11:04:11] Starting ''jshintall''... /home/tony/work/solo/fsstatic2/src/components/todo_example/todo.js line 26 col 23 Missing semicolon. ⚠ 1 warning [11:04:11] ''jshintall'' errored after 467 ms [11:04:11] Error in plugin ''gulp-jshint'' Message: JSHint failed for: /home/tony/work/solo/fsstatic2/src/components/todo_example/todo.js [14559:3392 - 0:2153] 11:04:11 [tony@tony-lin:o +1] ~/work/solo/fsstatic2 (master) $ echo $? 1

Quiero que mi compilación Gulp falle, si hay errores en JSHint.

De acuerdo con la documentación de gulp-jshint puedo usar el " informe fallido".

Sin embargo, lo siguiente no funciona:

gulp.task("lint", function() { return gulp.src(JS_SOURCES) .pipe(jshint()) .pipe(jshint.reporter("jshint-stylish")) .pipe(jshint.reporter("fail")); });

La tarea anterior siempre vuelve con el código de salida 0, incluso cuando hay errores en JSHint.

Estoy usando gulp 3.8.10 y gulp-jshint 1.9.0.

Hay discusiones en los temas github de gulp-jshint here y here ... pero de acuerdo con esas discusiones, deduzco que el código anterior debería funcionar con las últimas versiones de gulp y gulp-jshint. Sin embargo no ...

¿Alguien ha descubierto cómo fallar la compilación correctamente con gulp-jshint?


TLDR; Hasta que GulpJS tenga una buena solución en una versión estable, use la solución sugerida por Bahmutov en GitHub .

Él crea una solución, utilizando su propio filtro:

var map = require(''map-stream''); var exitOnJshintError = map(function (file, cb) { if (!file.jshint.success) { console.error(''jshint failed''); process.exit(1); } }); gulp.task(''lint'', function() { gulp.src(''example.js'') .pipe(jshint()) .pipe(jshint.reporter(''jshint-stylish'')) .pipe(exitOnJshintError); });

Respuesta larga

Esta pregunta se ha publicado como un problema en GitHub: ¿Cómo fallar la creación de tragos? # 6 . Preste especial atención al comentario de Bahmutov .

La solución (hack) que propone es agregar su propio filtro y hacer un process.exit(1); cuando hay errores de insinuación, que se ve así:

var map = require(''map-stream''); var exitOnJshintError = map(function (file, cb) { if (!file.jshint.success) { console.error(''jshint failed''); process.exit(1); } }); gulp.task(''lint'', function() { gulp.src(''example.js'') .pipe(jshint()) .pipe(jshint.reporter(''jshint-stylish'')) .pipe(exitOnJshintError); });

Este problema se enlaza con otro problema. El complemento no falla la compilación # 10 . Básicamente, lo que dicen aquí es que Gulp debería hacerse cargo de la falla de construcción. Esto da lugar a otro problema que se ha informado en GulpJS: el control de las compilaciones fallidas # 113 . Lo que en su turno ha sido mover a "terminar y luego fallar" # 20 . El último ha sido arreglado y se puede seguir el lanzamiento de Gulp JS: cambiando este # 347 .

Entonces, tendremos que esperar a que sea lanzado ...

Mientras tanto, podemos usar la solución alternativa mencionada en la parte superior de mi publicación en el TLDR;

Lo he implementado mi gulpfile.js en scripts-app tareas .