如何设置跨各种 IDE 使用的默认 linter

How to set a default linter to be used across various IDEs

这可能非常简单,但我不确定如何有效地表达它 google。

我希望为我的 python/flask/JavaScript 项目设置默认代码样式/linter。我有人使用不同的 IDE,因此有时在 VSCode 上格式良好的代码在 PyCharm 上会被不同地标记。

是否有某种我可以创建的设置文件会导致任何 IDE 读取它并使用 set linter?我 google 转了一圈,只发现人们通过他们的 IDEs

设置他们的 linter

我希望 python 使用 PEP8,但还没有决定使用 JavaScript linter。

Is there some sort of settings file that I can create that will cause any IDE to read it and use a set linter?

不,没有一种解决方案可以涵盖所有 IDE 和所有 linter。不过,最流行的 lint 工具确实为最流行的编辑器提供了跨平台说明,描述了如何充分利用它们。

标准化脚本

可以指定脚本来执行假定每个人都拥有的特定共享 linter;例如,一个 Javascript 项目的 package.json may have a lint script that runs eslint and installs eslint in devDependencies, and a project-specific eslint config file 可以提交到版本控制,这样每个人都有相同的配置。 (对于测试框架、格式化实用程序或其他任何东西也是如此。)

如果每个人的 IDE(或本地构建链,或预提交挂钩等)配置为执行 npm run lint or make lint 或类似工具而不是某些 native/proprietary 工具,那么您已经成功指定默认值。这些选择被签入源代码控制,并保持一致并可供所有人使用;挑战在于确保其他开发人员的环境遵守此默认设置。

标准化插件和插件设置

一些 IDE 扩展,如 ESLint for VSCode (dbaeumer.vscode-eslint), will look at your environment and automatically run appropriate tools for you; some operate while typing, on save, on build, or on commit. Some of these may not use your package/module/project metadata, instead looking for the presence of a tool and its config (e.g. eslint in PATH or node_modules and an .eslint.json or similar in your project directory). By committing IDE extension configuration with your code, ,一些不相关的 IDE 可以在可自定义的编辑器及其附加组件的帮助下共享它们的 linting 行为。

请注意,Python 的 black 等变革性工具属于略有不同的类别;许多 linter 可以配置为自动更正一些问题并且表现得几乎像格式化程序,但您可能会在您的问题中混淆格式和 linting,所以请注意区别。

P.S。可重现和可预测的开发环境长期以来一直是人们普遍关注的问题,现在确实有成百上千种解决方案。一些团队仍然共享开发 VMs/containers à la vagrant 和 docker;一些团队使用云 IDE 或文件共享将规定的设置同步到每台开发机器;大多数人都维护着一篇 wiki 文章或 README 文件,记录了设置自己的环境以符合团队期望的步骤。