25

我想请prettier递归地解析我的 JavaScript 文件,而不是指定它应该检查文件的每个文件夹。

我想做类似的事情:

prettier --write "all_js_files_except_node_modules_folder"

我在他们的文档中找不到太多内容。有什么建议么?

谢谢,保罗

4

7 回答 7

28

几周前的这个问题似乎回答了你的问题。TL;博士:

prettier "{,!(node_modules)/**/}*.js"
于 2017-05-03T15:30:13.737 回答
9

赶紧跑prettier --write .

并使用.prettierignore文件告诉它要忽略node_modules的内容,但默认情况下它会忽略。

于 2021-01-08T19:30:22.850 回答
6

如果你像我一样,你不知道目标文件使用 glob 格式。

你可以在这里阅读更多关于它的信息。(查看有关特殊字符的说明)。如果您想了解更多信息,请点击此处:http ://tldp.org/LDP/abs/html/globbingref.html

我的文件夹结构:

components/
pages/
node_modules/
package.json    
server.js

我想忽略package.jsonand node_modules/。我用这个命令解决了我的需求:

prettier --write "{*.js,!(node*)**/*.js}"`

{}是一种扩展机制,允许我使用多个过滤条件。就我而言,有2个:

1: *.js: 定位到执行命令的根目录下的所有JS文件

2: !(node*)**/*.js: 定位所有文件夹和子文件夹中的所有JS文件(递归部分使用 获取**

于 2017-05-03T15:59:06.503 回答
4

对于想要一个简单示例(没有括号、ors 等)的剪切和粘贴,这可能是一个有用的 glob 示例:

prettier --write "app/**/*.ts"

Prettiers目录和下面*.ts的每个文件。app

于 2018-10-23T15:37:49.990 回答
2

这个解决方案最适合我。这是我发现的唯一一种不管嵌套程度如何都会命中每个文件的方法:

package.json

  "scripts": {
    "format": "prettier --write {,*/**/}*.{js,jsx,json}",
  },

.prettierignore

node_modules
build
于 2020-04-11T21:59:27.907 回答
2

我的问题是我必须添加引号

在你的 package.json 的某个地方

"format": "prettier --write \"src/**/*.ts\""

于 2021-09-20T18:52:11.763 回答
1

添加为 npm 脚本对我有用:

  • package.json定义的 npm 脚本

它将递归修复以下文件。extprettierrc文件中定义了以下规则集。

重要提示:.<扩展名 || MULTIPLE_EXTENSIONS> eg'./src/**/*.{js,jsx,scss,md,json}' (包括所有文件和文件夹)

  • 不要错过引号-> ' PATH>.<EXTENSION || MULTIPLE_EXTENSIONS> '
{
    "name": "compentence-journey",
    "version": "0.1.0",
    "private": true,
    "scripts": {
    "prettier.fix": "prettier --check --write './src/**/*.{js,jsx,scss,md,json}'",
    },
   ...

}
  • .prettierrc JSON 文件
{
  "trailingComma": "es5",
  "tabWidth": 4,
  "semi": false,
  "singleQuote": true
}
  • .prettierignore从格式化中忽略文件夹/文件
/config

# Dependency directories
node_modules/

# Publish Directory
build/

# Root level folders/files
/package.json
于 2021-08-11T13:18:39.507 回答