如何在HTML脚本标记JS上运行Gulp ESLint

时间:2016-10-05 08:35:59

标签: javascript gulp eslint

我已经使用以下代码在我的HTML脚本标记中设置了Gulp到ESLint的javascript。

const eslint = require('gulp-eslint');

gulp.task('process-js', () => {
  const scripts = processInline();

  return gulp.src(['src/*.html'])
    .pipe(errorNotifier())
  
    .pipe(scripts.extract('script'))
    .pipe(eslint())
    .pipe(eslint.format())
    .pipe(eslint.failAfterError())
    .pipe(scripts.restore())

    .pipe(gulp.dest('dist'))
});

linter工作得很好,但似乎给了我与我的HTML文件不对应的行号,但是从脚本标签中提取的javascript的行号,我从未看到过。

如何获取HTML文件的行号?或者我可以更好地将我的HTML脚本javascript lint?

2 个答案:

答案 0 :(得分:0)

我知道这个问题将近2岁了,但是我也遇到了这个问题。

这是我的解决方案: 我使用gulp-html-extract从文件中提取脚本标签内容。 https://github.com/FormidableLabs/gulp-html-extract

然后我将 pad 设置为true。

例如:

var gulp = require('gulp');
var extract = require("gulp-html-extract");
var eslint = require('gulp-eslint');

gulp.task("eslint:html", function () {
    return gulp
        .src("templates/**/*.tpl")
        .pipe(extract({
            sel: "script, code.javascript",
            pad: true,
        }))
        .pipe(eslint())
        .pipe(eslint.format())
        .pipe(eslint.failAfterError());
    });

我希望这会有所帮助。

答案 1 :(得分:-2)

你可以使用Atom,它有eslint插件。 http://oceanpad.github.io/2016/08/22/2016-08/To-Introduce-ESLint-to-Atom/

表现得非常好。