【发布时间】:2018-11-22 05:24:18
【问题描述】:
我们有一个由多个开发人员在多个操作系统上开发的项目。我们在更漂亮的配置中将字符限制设置为 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: "printWidth": 120
- prettierignore: *.snap
项目
React, Babel, Webpack, vanilla es6+ no typescript project with jest for testing
研究
我们尝试设置 eslint 的 "linebreak-style": ["error", "unix"] 以查看 eslint 更改是否会更新修复 Windows 的开玩笑快照,但无济于事。我们已确保跨机器安装相同版本的 jest。与 prettier 和 eslint 相同。
关于我们如何解决此问题以使测试不会在一个或另一个操作系统上失败的任何建议?
【问题讨论】:
-
你在生成的快照文件上运行得更漂亮吗?
-
不,我实际上不确定 120 个字符的限制是如何在这里发挥作用的。在我们的 .prettierignore 中有 *.snap。我们的 eslint 配置中没有 120 个字符的限制
-
这很奇怪,例如如果将限制增加到 130 就不会发生这种情况?
-
如果我在我的 prettierrc 中将字符长度增加到 130 甚至 160,它实际上并没有改变快照。我去看看我的 eslint extends 看看有没有字数限制。
-
如果是这样,那么这可能与更漂亮的关系无关。也许您可以通过(暂时ofc)一一丢弃依赖关系来将问题缩小到更接近开玩笑本身。这听起来像是一个玩笑的错误
标签: reactjs jestjs eslint prettier