我们有一个由多个开发人员在多个操作系统上开发的项目。我们将 Prettier 配置中的字符限制设置为 120 个字符。我们的 Windows 机器生成的快照与我们的 linux/unix 机器不同。
窗口:
<h4
className="RightPanel__item--heading heading--headingBlocks
subHeading--headingBlocks subHeading--different"
>
而在我们的 linux/unix 机器上,快照会生成以下行:
<h4
className="RightPanel__item--heading heading--headingBlocks subHeading--headingBlocks subHeading--different"
>
对于 linux/unix 快照,代码在第 119 列结束,而 Windows 机器在最后几个属性之前生成一个新行。 我们使用 React、Jest 进行测试,使用 eslint 进行 linting,使用 Babel 进行转换。
相关配置
- babelrc: 转换: { "^.+\.jsx?$": "babel-jest"}
- eslintrc: "globals": { "jest": true }
- prettierrc:“打印宽度”:120
- 漂亮忽略:*.snap
项目
React、Babel、Webpack、vanilla es6+ 无 typescript 项目,带有用于测试的 jest
研究
我们尝试设置 eslint 的 "linebreak-style": ["error", "unix"] 来查看 eslint 更改是否会更新修复 Windows 的 Jest 快照,但无济于事。我们已确保不同机器上安装的 jest 版本相同。与 Prettier 和 eslint 相同。
关于如何解决此问题,以便测试不会在一个操作系统或另一个操作系统上失败,有什么建议吗?
请您参考如下方法:
在团队中同步此类内容的最佳方法是使用 EditorConfig。大多数代码编辑器都支持它,无论是 native 还是通过扩展。
EditorConfig 是指定编辑器设置(在您的情况下为行结尾)的通用方法,所有操作系统上的所有代码编辑器都遵循该方法。
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf






