【问题标题】:How can I tell prettier to parse files recursively?如何告诉 prettier 递归解析文件?
【发布时间】:2017-10-01 12:44:39
【问题描述】:

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

我想做这样的事情:

prettier --write "all_js_files_except_node_modules_folder"

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

谢谢, 保罗

【问题讨论】:

    标签: javascript prettier


    【解决方案1】:

    几周前的This issue 似乎回答了你的问题。 TL;DR:

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

    【讨论】:

      【解决方案2】:

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

      您可以阅读更多关于它的信息here。 (查看有关特殊字符的说明)。如果您想了解更多信息,请点击此处: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:定位所有文件夹和子文件夹中的所有JS文件(递归部分使用**获取)

      【讨论】:

        【解决方案3】:

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

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

        app 及以下目录中的每个*.ts 文件进行更漂亮的处理。

        【讨论】:

          【解决方案4】:

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

          package.json

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

          .prettierignore

          node_modules
          build
          

          【讨论】:

            【解决方案5】:

            只需运行prettier --write .

            并使用.prettierignore 文件告诉它要忽略什么,但默认情况下它会忽略node_modules

            【讨论】:

              【解决方案6】:

              添加为 npm 脚本对我有用:

              • package.json 定义的 npm 脚本

              它将递归修复以下文件。ext使用prettierrc文件中定义的以下规则集。

              重要:. 例如'./src/**/*.{js,jsx,scss,md,json}'(包括所有文件和文件夹)

              • 不要错过引号 -> ' PATH>。'
              {
                  "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
              

              【讨论】:

                【解决方案7】:

                对我来说问题是我必须添加引号

                在你的 package.json 中的某个地方

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

                【讨论】:

                • 对我来说,这个解决方案有效,但您可以使用单引号,这样您就不必转义它们。
                • 也许你是对的
                猜你喜欢
                • 2018-03-06
                • 1970-01-01
                • 2018-06-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-07-11
                • 1970-01-01
                • 2013-05-03
                相关资源
                最近更新 更多