`npx prettier --write . --end-of-line lf` 是一条用于**格式化代码**的命令

命令拆解与核心作用

npx prettier --write . --end-of-line lf 是一条用于格式化代码 的命令,核心作用是:通过 Prettier(主流的代码格式化工具)自动格式化当前目录及所有子目录下的代码文件,并强制将文件的换行符统一为 LF(Line Feed,换行)格式。

逐部分解析

1. npx
  • 是 npm 5.2+ 内置的包执行工具,无需全局安装 Prettier,直接从 npm 仓库临时下载(或使用本地已安装的)Prettier 并执行。
  • 优势:避免全局安装的版本冲突,确保使用项目本地(node_modules)或最新兼容版本的 Prettier。
2. prettier
  • 核心工具:Prettier 是一个"有主见的"代码格式化工具,支持 JavaScript/TypeScript、CSS/LESS/SCSS、HTML、JSON、Markdown 等几乎所有前端主流文件格式,能统一团队代码风格。
3. --write .
  • --write:核心参数,意为"写入格式化后的内容到文件"(而非仅在终端预览格式化结果)。
  • .:指定格式化的目标路径为当前目录 (包含所有子目录),也可指定具体文件/目录(如 --write src/ 仅格式化 src 目录)。
    • 对比:若省略 --write,Prettier 仅会在终端输出格式化后的代码,不会修改原文件。
4. --end-of-line lf
  • --end-of-line:指定文件的换行符格式,强制覆盖 Prettier 配置文件(如 .prettierrc)中的 endOfLine 配置。
  • lf:换行符类型为 LF (Unix/Linux/macOS 系统默认换行符),可选值还有:
    • crlf:回车+换行(Windows 系统默认);
    • cr:仅回车(极少使用);
    • auto:根据系统自动适配(不推荐团队协作使用,易导致换行符不一致)。

核心使用场景

  1. 统一团队换行符规范
    跨系统开发时(Windows + macOS/Linux),不同系统默认换行符不同,强制 lf 可避免 Git 提交时因换行符差异产生的"无意义修改"(如文件全量标红)。
  2. 批量格式化代码
    首次接入 Prettier 时,一键格式化整个项目的所有文件,快速统一代码风格。
  3. 临时覆盖配置
    若项目 .prettierrc 中配置的 endOfLine 不符合需求(如配置为 auto),可通过该命令临时强制使用 lf,无需修改配置文件。

补充说明

  1. 忽略文件
    Prettier 会自动读取项目中的 .prettierignore 文件(语法同 .gitignore),忽略指定文件/目录(如 node_modules/dist/),不会格式化这些内容。
  2. 优先级
    命令行参数(如 --end-of-line lf)的优先级高于 Prettier 配置文件(.prettierrc/package.json 中的 prettier 字段)。
  3. 常见问题
    • Windows 系统执行后换行符仍为 CRLF:需确保 Git 配置 core.autocrlf=false(避免 Git 自动转换换行符);
    • 部分文件未格式化:检查 .prettierignore 是否包含该文件,或 Prettier 是否支持该文件类型(可通过 prettier --list-different . 查看未格式化的文件)。

简化/扩展用法

  • 仅检查未格式化的文件(不修改):npx prettier --check . --end-of-line lf
  • 仅格式化指定类型文件:npx prettier --write "src/**/*.js" --end-of-line lf
  • 结合配置文件(推荐):在 .prettierrc 中配置 "endOfLine": "lf",后续只需执行 npx prettier --write . 即可。
相关推荐
Mintopia6 分钟前
一套能落地的"防 Bug"习惯:不用加班也能少出错
前端
亿元程序员8 分钟前
箭头游戏那么火,搞个3D的可以吗?我:这不是3年前的游戏了吗?
前端
IT_陈寒9 分钟前
SpringBoot里的这个坑差点让我加班到天亮
前端·人工智能·后端
巫山老妖13 分钟前
大模型工程三驾马车:Prompt Engineering、Context Engineering 与 Harness Engineering 深度解析
前端
Cobyte18 分钟前
4.响应式系统基础:从发布订阅模式的角度理解 Vue3 的数据响应式原理
前端·javascript·vue.js
晓得迷路了20 分钟前
栗子前端技术周刊第 124 期 - ESLint v10.2.0、React Native 0.85、Node.js 25.9.0...
前端·javascript·eslint
半个俗人36 分钟前
fiddler的基础使用
前端·测试工具·fiddler
a11177639 分钟前
变电站数字孪生大屏ThreeJS 开源项目
前端·信息可视化·开源·html
恋猫de小郭39 分钟前
AI 的公开测评得分都在作弊,就像泡面的封面,一切以实物为准
前端·人工智能·ai编程
禅思院41 分钟前
使用 VueUse 构建一个支持暂停/重置的 CountUp 组件
前端·vue.js·架构