使用`--fix`标志自动化ESLint有什么问题?

时间:2017-01-21 16:25:51

标签: javascript npm eslint

使用--fix标志自动化ESLint是不错的做法,还是从长远来看会产生问题?

例如,我使用npm"prestart"脚本。这意味着每次运行npm start时都会运行ESLint并修复代码中的任何可修复错误。这会导致什么问题?

1 个答案:

答案 0 :(得分:1)

这可能导致的唯一真正问题是,最终在npm start上运行的代码可能与您编写的代码不同。在启动应用程序之前,您已经让ESLint对您的代码进行了更改,这可能会(可能)导致意外行为。这取决于项目的设置方式以及应用程序的部署方式。

list of ESLint rules中,可以自动固定的可以使用扳手;它可以改变不仅仅是间距和分号。虽然ESLint(与--fix一起运行时)努力不会在功能上破坏您的代码,但是只要您在编写和运行代码之间操作代码,您就会面临改变行为的风险。代码库。 ESLint试图确保他们不会以破坏/改变任何行为的方式自动修复您的代码,但是可能会发生错误/事故,这可能会改变您的代码,使其行为不同。顺便说一句,这是一个有趣的对话on autofix and how it might change

如果您正在将ESLint作为npm test套件的一部分运行而不部署您的应用程序,除非您的lint规则正在通过,那么这不是一个问题(因为这不会发生在您部署的应用程序上,只在本地;如果发现代码与您的样式指南不匹配,则会阻止您的应用部署。)

否则,--fix可以帮助人们在保持一致的风格的同时编码他们想要的方式,并半自动地避免代码库中的“有问题的模式”。虽然它不能解决所有规则,但它可以使团队的开发更加顺畅。如果需要,您甚至可以在git pre-commit钩子中运行此自动修复,以便确保提交的代码是固定版本。

示例:Git pre-commit ESLint hook