You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下NestJS CLI生成文件默认CRLF,如何改为LF?

解决NestJS CLI在Windows生成文件默认用CRLF的问题

以下是几个可行的解决方法,按优先级排序:

1. 自定义项目内的Nest CLI模板(推荐)

避免修改全局CLI文件,在项目内维护自定义模板确保LF行尾:

  • 在项目根目录创建nest-cli-templates文件夹
  • 找到全局Nest CLI安装路径(执行npm list -g @nestjs/cli查看,Windows下通常是C:\Users\<你的用户名>\AppData\Roaming\npm\node_modules\@nestjs\cli),复制templates目录下的所有文件到你项目的nest-cli-templates文件夹
  • 用VS Code打开这些模板文件,统一将行尾格式切换为LF(点击编辑器右下角的CRLF,选择LF后保存所有文件)
  • 修改项目根目录的nest-cli.json,添加templatePath配置指向自定义模板:
{
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    // 你的现有编译配置
  },
  "templatePath": "./nest-cli-templates"
}

2. 修改全局Nest CLI模板文件

如果多个Nest项目都需要这个配置,可以直接修改全局模板:

  • 执行npm list -g @nestjs/cli找到全局CLI的安装路径
  • 进入该路径下的templates目录,里面包含所有生成器的模板文件(如controller、service等)
  • 用VS Code批量打开这些文件,将行尾格式统一改为LF并保存

3. 用脚本自动转换行尾格式

如果不想修改模板,可以在生成文件后自动转换:

  • 安装转换工具:npm install dos2unix-cli --save-dev
  • 在package.json中添加脚本:
{
  "scripts": {
    "fix:eol": "dos2unix src/**/*.ts"
  }
}
  • 生成文件后执行npm run fix:eol,或者将生成命令和修复命令结合:nest g controller demo && npm run fix:eol

额外检查

确保项目根目录的.editorconfig文件(如果存在)包含以下配置,避免后续编辑时行尾格式回退:

root = true

[*]
end_of_line = lf
charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true

内容的提问来源于stack exchange,提问作者Arun Kumar S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:32:40