Eslint --fix 抑制错误但实际上并没有更改文件
Posted
技术标签:
【中文标题】Eslint --fix 抑制错误但实际上并没有更改文件【英文标题】:Eslint --fix supresses errors but doesn't actually change file 【发布时间】:2019-07-27 10:45:58 【问题描述】:我正在使用 gulp 和 eslint 来构建我的代码,当我运行 lint 时,我遇到了大量缩进/间距错误。我将修复标志添加到我的 gulpfile 中:
gulp.task('lint', function()
return gulp
.src([config.tap.src])
.pipe(eslint(
fix:true,
envs: ['jquery', 'browser']
))
.pipe(eslint.format())
.pipe(eslint.failAfterError());
);
并且错误消失了。但是,我的文件似乎和以前一样有不正确的缩进;根据文档修复应该更改我的文件吗?我需要其他参数来修复这些更改吗?
例如我得到了错误:
12:1 error Expected indentation of 6 spaces but found 12
但修复后缩进还是一样。 有人有解决办法吗?
【问题讨论】:
您如何查看这些文件? 一个名为 Atom 的 IDE。但这些变化也没有出现在 Github 拉取请求中——afaik git 总是显示缩进/间距变化--fix
标志可能是正确的,Atom 只是美化了有问题的文件的视图。尝试使用记事本或 vi 等“简单”文本编辑器在应用修复之前和之后查看它们。
我认为是这种情况,直到我看到我的 git PR 没有任何变化。不过,我只是使用记事本进行了测试——即使没有错误或警告,它也不能修复缩进。我检查了 master 分支(没有修复),运行gulp lint
,在一行中有 4 个空格而不是 2 个时出错。切换到fix:true
分支,运行gulp lint
,没有错误,仍然是 4 个空格
【参考方案1】:
事实证明,使用 eslint,您需要指定修复程序的保存位置。其他 SO 线程建议 gulp.dest('.')
或 gulp.dest('./')
但这些为我创建了新文件夹,而不是覆盖原件。我在下面发布的内容对我有用。
return gulp
.src([config.src])
.pipe(eslint( fix: true ))
.pipe(eslint.format())
.pipe(gulp.dest(file => file.base))
.pipe(eslint.failAfterError());
【讨论】:
以上是关于Eslint --fix 抑制错误但实际上并没有更改文件的主要内容,如果未能解决你的问题,请参考以下文章
有没有更好的方法来抑制赛普拉斯开玩笑测试顶部关于“三斜杠指令”的 ESLint 错误?