node.js - 为什么我的 npm 脚本中的 glob 不起作用?

标签 node.js glob prettier-eslint

我正在尝试为 NPM 脚本创建一个正则表达式 glob。这是我的:

"format": "prettier-eslint --write \"{,!(node_modules|cypressTests)/**/}*.{js,json,vue}\""

目前,这会格式化所有不在 node_modules 文件夹或 cypressTests 文件夹中的 .js、.json 和 .vue 文件。

下面是我的问题:

cypressTests 文件夹还包含一个我不想格式化的 node_modules 文件夹。我如何排除 ./cypressTests/node_modules 就像我目前对文件夹 ./node_modules 所做的那样?

我这样试过,还是不行。然后由于某种原因它排除了整个项目中的几乎所有内容:

"format": "prettier-eslint --write \"{,!(node_modules|cypressTests/node_modules)/**/}*.{js,json,vue}\""

最佳答案

Prettier 有一个更简单的忽略文件的解决方案。你可以做一个.prettierignore file (使用 .gitignore syntax )在美化时忽略文件。该文件应放在项目的根目录中。我相信你的文件中的语法是:

**/node_modules

这实际上是 prettier 默认忽略的内容(在其他一些源代码控制文件夹排除项中)——所以除非你已经有一个 .prettierignore 文件,否则所有 node_modules 文件夹应该已经排除在美化之外。

命令将简单地是:

"format": "prettier-eslint --write \"**/*.{js,json,vue}\""

或者如果您希望您的 .prettierignore 文件位于其他地方:

"format": "prettier-eslint --ignore-path <path-to-ignore-file> --write \"**/*.{js,json,vue}\""

如果此解决方案对您不起作用并且您需要使用 glob 方法,我不太能弄清楚,但是 this website对于测试 glob 很方便。

关于node.js - 为什么我的 npm 脚本中的 glob 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74116073/

相关文章:

javascript - 带有 async/await 的递归 setTimeout

javascript - 如何使用 swagger-ui 模块在我的 MEAN 堆栈项目中显示 Swagger JSON 文件?

javascript - 全局 ESLint 覆盖项目 ESLint

javascript - 更漂亮:仅针对文件的更改行运行

eslint - 删除 `(` eslint(更漂亮/更漂亮)

node.js - ES6 Istanbul 尔代码覆盖率 : how to test correctly a branch

javascript - Heroku 中的 Node 应用程序 : Module build failed: Error: Unexpected "space" found

bash - 仅文件通配和匹配数字

c++ - 在 Windows 上用什么替代 glob_t 和 glob()?

mercurial - 忽略根目录和子目录中的相同文件名