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

提交NextJS+NextAuth时lint-staged报错,是否因Catch All路由括号导致?

NextAuth集成项目lint-staged报错问题解答

问题详情

提交集成NextAuth的NextJS项目时,lint-staged阶段失败,报错信息如下:

Explicitly specified file was ignored due to negative glob patterns: "c:/projects/project01/app/api/auth/[...nextauth]/route.ts"

当前package.json中的lint-staged配置:

"lint-staged": {
  "**/*": "prettier --write --ignore-unknown"
}

问题原因

这个报错确实是由NextJS Catch All路由的括号命名导致的。

lint-staged依赖的glob匹配器会把文件名里的[ ]当作正则表达式的字符集语法来解析,而不是普通的文件名字符。比如[...nextauth]会被glob解析成"匹配包含n、e、x、t、a、u、h这些字符的任意名称",而非精确匹配这个文件夹本身。当lint-staged尝试处理该文件时,glob解析后的规则和实际路径不匹配,再结合可能存在的忽略规则(比如.gitignore或prettier的忽略配置),就会触发这个"文件被忽略"的报错。

解决方法

  • 单独指定路径并转义特殊字符:在lint-staged配置里给带方括号的路径添加转义符,确保glob精确匹配该文件:
"lint-staged": {
  "**/*": "prettier --write --ignore-unknown",
  "app/api/auth/\\[...nextauth\\]/route.ts": "prettier --write"
}
  • 升级lint-staged版本:新版本的lint-staged已经优化了对特殊字符文件名的glob处理,升级后可能自动解决该问题。
  • 调整匹配规则:避免使用**/*这种过于宽泛的匹配规则,改用更精确的路径匹配,减少特殊字符解析冲突的概率。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:12:11