Meteor项目中Prettier如何仅格式化client目录全层级JS文件忽略handlebars文件
问题根因
你遇到的client/**/*.js仅匹配深层JS文件的问题,本质是部分shell环境(如旧版bash、Windows cmd/PowerShell)对glob通配符**的解析规则存在差异,默认不会匹配目标目录下的第一层文件,导致client根目录下的foo.js这类文件被漏匹配。
可选解决方案
调整glob匹配规则,一次性覆盖所有层级JS文件
同时匹配client根目录和所有子目录的JS文件即可,命令如下:npx prettier --write 'client/*.js' 'client/**/*.js'也可以用大括号扩展的简化写法,效果完全一致:
npx prettier --write 'client/{,**/}*.js'该方案无需修改任何项目配置,单次执行就能覆盖1-5层所有嵌套目录下的JS文件,不会触碰HTML文件。
用--exclude参数排除HTML文件
如果你希望匹配client下的所有文件,仅排除HTML后缀的文件,可以用prettier内置的exclude参数:npx prettier --write 'client/**' --exclude '**/*.html'后续如果需要排除其他后缀的文件,直接追加
--exclude规则即可,适配性更强。配置全局忽略文件(长期项目更推荐)
在项目根目录新建.prettierignore文件,仅需要添加一行规则:**/*.html配置完成后,直接执行
npx prettier --write 'client/**'就会自动忽略所有HTML文件,不需要每次执行命令加参数,也不需要给单个HTML文件加忽略注释,一次配置永久生效。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

