我们有一个由多个开发人员在多个操作系统上开发的项目。我们将 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 进行转换。

相关配置

  1. babelrc: 转换: { "^.+\.jsx?$": "babel-jest"}
  2. eslintrc: "globals": { "jest": true }
  3. prettierrc:“打印宽度”:120
  4. 漂亮忽略:*.snap

项目

React、Babel、Webpack、vanilla es6+ 无 typescript 项目,带有用于测试的 jest

研究

我们尝试设置 eslint 的 "linebreak-style": ["error", "unix"] 来查看 eslint 更改是否会更新修复 Windows 的 Jest 快照,但无济于事。我们已确保不同机器上安装的 jest 版本相同。与 Prettier 和 eslint 相同。

关于如何解决此问题,以便测试不会在一个操作系统或另一个操作系统上失败,有什么建议吗?

请您参考如下方法:

在团队中同步此类内容的最佳方法是使用 EditorConfig。大多数代码编辑器都支持它,无论是 native 还是通过扩展。

EditorConfig 是指定编辑器设置(在您的情况下为行结尾)的通用方法,所有操作系统上的所有代码编辑器都遵循该方法。

https://editorconfig.org

# Unix-style newlines with a newline ending every file 
[*] 
end_of_line = lf 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!