`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 . 即可。
相关推荐
程序员码歌1 小时前
短思考第261天,浪费时间的十个低效行为,看看你中了几个?
前端·ai编程
Swift社区2 小时前
React Navigation 生命周期完整心智模型
前端·react.js·前端框架
若梦plus2 小时前
从微信公众号&小程序的SDK剖析JSBridge
前端
用泥种荷花2 小时前
Python环境安装
前端
Light602 小时前
性能提升 60%:前端性能优化终极指南
前端·性能优化·图片压缩·渲染优化·按需拆包·边缘缓存·ai 自动化
Jimmy2 小时前
年终总结 - 2025 故事集
前端·后端·程序员
烛阴2 小时前
C# 正则表达式(2):Regex 基础语法与常用 API 全解析
前端·正则表达式·c#
roman_日积跬步-终至千里3 小时前
【人工智能导论】02-搜索-高级搜索策略探索篇:从约束满足到博弈搜索
java·前端·人工智能
GIS之路3 小时前
GIS 数据转换:使用 GDAL 将 TXT 转换为 Shp 数据
前端
多看书少吃饭3 小时前
从Vue到Nuxt.js
前端·javascript·vue.js