簡體   English   中英

如何告訴 prettier 遞歸解析文件?

[英]How can I tell prettier to parse files recursively?

我想請prettier遞歸地解析我的 JavaScript 文件,而不是指定它應該檢查文件的每個文件夾。

我想做類似的事情:

prettier --write "all_js_files_except_node_modules_folder"

我在他們的文檔中找不到太多內容。 有什么建議么?

幾周前的這個問題似乎回答了您的問題。 特爾;博士:

prettier "{,!(node_modules)/**/}*.js"

只需運行prettier --write .

並使用.prettierignore文件告訴它要忽略什么,但默認情況下它會忽略node_modules

如果你像我一樣,你沒有意識到目標文件使用了 globs 格式。

您可以在此處閱讀更多相關信息。 (檢查有關特殊字符的說明)。 如果您想了解更多信息,請在此處查看: http : //tldp.org/LDP/abs/html/globbingref.html

我的文件夾結構:

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

我想忽略package.jsonnode_modules/ 我用這個命令解決了我的需求:

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

{}是一種擴展機制,允許我使用多個過濾條件。 就我而言,有 2 個:

1: *.js : 定位執行命令的根目錄下的所有JS文件

2: !(node*)**/*.js : target所有文件夾和子文件夾中的所有JS文件(遞歸部分使用**獲得)

對於需要簡單示例(沒有括號or s 等)的剪切和粘貼,這可能是一個有用的 globs 示例:

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

美化app目錄及以下的每個*.ts文件。

這個解決方案最適合我。 這是我發現的唯一一種無論嵌套如何都會命中每個文件的方法:

package.json

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

.prettierignore

node_modules
build

我的問題是我必須添加引號

package.json 的某處

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

添加為 npm 腳本對我有用:

  • package.json定義的 npm 腳本

它將遞歸修復以下文件。 ext使用在prettierrc文件中定義的以下規則集。

重要: .<擴展名 || MULTIPLE_EXTENSIONS> 例如'./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

如果您希望擴展 glob 在package.json文件中遞歸工作,則需要額外的引號。

....
"scripts": {
    ....
    "format": "prettier './**/*.ts' --write --ignore-path ./.gitignore"
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM