package.json中的“*.+(js|jsx)”是什么意思?

What does "*.+(js|jsx)" mean in package.json?

我正在为我的 Next.js 项目设置 ESLintPrettier。我关注了其中一篇文章 this one.

这是我目前的 package.json 文件(部分):

  "lint-staged": {
    "*.{js,jsx}": [
      "eslint '*/**/*.{js,jsx}' --fix"
    ]
  }

虽然我已经复制和粘贴了但是无法理解 *.{js,jsx} & */**/*.{js,jsx} 这些模式到底是什么意思?另外:*.+(js|jsx)想了解这个模式。

它类似于正则表达式,称为 glob pattern,因此它知道应将命令应用于哪些文件。

  • *任意字符
  • .一个点
  • {js,jsx} 'js' 或 'jsx'
  • **

foo.js 匹配
bar.php 没有。

第二个是实际的 JS lint 命令。它基本上意味着匹配该结构的所有内容都会得到 eslint.

例如,您也可以设置 "eslint 'src/javascript/*.{js,jsx}' --fix",如果这是您希望它检查的唯一目录,而不管所有其他 JS 文件。