Prettier 的 endOfLine 配置到底该怎么设才不报错?

小志诚 阅读 46

我在 Windows 上写 React 项目,每次提交代码 Git 都提示 CRLF 警告,说 Prettier 格式化后换行符变了。我试过在 .prettierrc 里设 "endOfLine": "lf",也试过 "auto",但要么格式化后 Git 认为所有文件都变了,要么保存时编辑器又自动改回去,特别烦。

这是我的一个简单组件:

import React from 'react';

const Button = () => {
  return <button>Click me</button>;
};

export default Button;

到底该怎么配置才能让 Prettier、Git 和编辑器三者和平共处啊?

我来解答 赞 8 收藏
二维码
手机扫码查看
2 条解答
慕容瑞芹
遇到这种情况确实挺头疼的,不过咱们一步一步来解决。

首先,确保你的 Git 配置正确处理了行尾符。可以在你的项目根目录下运行以下命令:
git config --local core.autocrlf true

这个配置会让 Git 在检出文件时将 LF 转换为 CRLF,在提交时将 CRLF 转换为 LF,这样可以避免编辑器和 Git 之间的冲突。

接下来,调整 Prettier 的配置。你已经尝试了 "endOfLine": "lf" 和 "auto",但是发现有些问题。我们可以试试将 Prettier 的配置改为 "endOfLine": "auto",然后确保你的编辑器也设置为根据文件内容自动检测行尾符。

对于 VSCode 用户,可以在设置中开启 files.eoln,并且勾选 files.autoGuessEncoding

最后,为了让编辑器和 Git 配合得更好,可以创建或更新 .editorconfig 文件,加入以下内容:
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

这样配置之后,Prettier 会按照你的规则进行格式化,而 Git 也会正确处理行尾符。

希望这能帮到你,搞定这个问题就能省不少心。
点赞
2026-03-22 17:13
南宫忠娟
试试这个方法。这个问题主要是换行符不一致导致的。Windows 默认用 CRLF,而大多数现代工具链倾向于 LF。你需要统一一下。

首先,在你的项目根目录下创建或编辑 .editorconfig 文件,加入这些内容:
root = true

[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true


然后确保你的 Git 配置使用了正确的换行符处理方式。在命令行里输入:
git config --global core.autocrlf input


这样配置之后,Git 会把 CRLF 转换成 LF 在仓库里,但保持你在本地编辑时用 CRLF,这样可以避免冲突。

最后,在你的 .prettierrc 文件中设置 endOfLinelf
{ "endOfLine": "lf" }


这样配置下来,Prettier 会强制使用 LF,编辑器和 Git 也会配合处理好换行符,理论上就不会再有警告或者文件被误认为变化了。希望这能帮到你。
点赞
2026-03-21 14:36