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
相关产品推荐
相关产品推荐

