目錄:
  1. 应用场景
    1. 文档
      1. 安装
        1. CI配置
          1. 配置
            1. 配置方式
              1. 覆盖配置
                1. 共享配置
                  1. 忽略代码
                    1. 过滤文件
                    2. 配置项
                      1. 与lint结合使用

                        项目规范化2-prettier的配置与使用

                        閱讀時間:全文 803 字,預估用時 5 分鐘
                        創作日期:2020-05-04
                        文章標籤:
                         
                        BEGIN

                        应用场景

                        一般使用在项目中使用lint后规避程序代码的不合法使用, 但每个程序员的代码都有其自己的风格, 为了让代码风格一致, 一般会在git提交之前格式化一遍代码, 而格式化代码的工具就是prettier.

                        文档

                        项目地址: prettier Github 🔗

                        项目官网: prettier 🔗

                        安装

                        项目中安装: yarn add prettier --dev --exact

                        全局安装: yarn global add prettier

                        CI配置

                        package.jsonscripts下新增"prettier": "prettier 'src/**/*.@(ts|tsx|html|json)' --write"

                        使用命令yarn prettier格式化代码文件

                        配置

                        配置方式

                        有四种配置方式:

                        1. package.json文件中新增prettier
                        2. 项目根目录新增文件.prettierrc, 或者也可以带后缀.json.yaml.yml
                        3. 项目根目录新增带导出对象的js文件.prettierrc.jsprettier.config.js
                        4. 项目根目录新增文件.prettierrc.toml

                        覆盖配置

                        如需在不同的文件使用不同的配置, 则可使用覆盖配置特殊处理, 如:

                        {
                          "semi": false,
                          "overrides": [
                            {
                              "files": "*.test.js",
                              "options": {
                                "semi": true
                              }
                            },
                            {
                              "files": ["*.html", "legacy/**/*.js"],
                              "options": {
                                "tabWidth": 4
                              }
                            }
                          ]
                        }

                        共享配置

                        如果想使用共享的开源配置, 假设我们要使用prettier-config则可以:

                        1. package.json文件增加配置"prettier": "@company/prettier-config"
                        2. .prettierrc.json中包含文本"@company/prettier-config"
                        3. .prettierrc.js中使用require导入, 如:
                          module.exports = {
                            ...require("@company/prettier-config"),
                            semi: false,
                          };

                        忽略代码

                        如果某一行代码不需要格式化, 则可以在代码前一行增加注释, 注释内容为prettier-ignore即可

                        过滤文件

                        如果对默写文件不使用prettier格式化代码则可生成文件.prettierignore, 里面每一行一个文件名代表需要过滤的文件

                        配置项

                        在配置文件中配置配置项, 有如下配置项

                        APICLI默认含义
                        printWidth: <int>--print-width <int>80单行最大字符数
                        tabWidth: <int>--tab-width <int>2缩进空格数
                        useTabs: <bool>--use-tabsfalse是否使用制表符缩进
                        semi: <bool>--no-semitrue是否句尾添加分号
                        singleQuote: <bool>--single-quotefalse是否使用单引号
                        `quoteProps: “<as-neededconsistentpreserve>”``—quote-props <as-needed
                        jsxSingleQuote: <bool>--jsx-single-quotefalse在jsx中是否使用单引号
                        `trailingComma: “<es5noneall>”``—trailing-comma <es5
                        bracketSpacing: <bool>--no-bracket-spacingtrue是否含有支架间距, 如true则{ foo: bar }, false则{foo: bar}
                        jsxBracketSameLine: <bool>--jsx-bracket-same-linefalsejsx的>符号是否紧贴句尾, false时为换行
                        `arrowParens: “<alwaysavoid>”``—arrow-parens <alwaysavoid>`
                        rangeStart: <int>--range-start <int>0格式化范围的开头
                        rangeEnd: <int>--range-end <int>Infinity格式化范围的结尾
                        parser: "<string>"--parser <string>None指定要使用的解析器
                        filepath: "<string>"--stdin-filepath <string>None用于根据字符型自动选择解析器, 如: `cat foo
                        requirePragma: <bool>--require-pragmafalse是否只格式化文件顶部带有格式化标识的文件
                        insertPragma: <bool>--insert-pragmafalse是否在已经格式化后的文件做标记
                        `proseWrap: “<alwaysneverpreserve>”``—prose-wrap <always
                        `htmlWhitespaceSensitivity: “<cssstrictignore>”``—html-whitespace-sensitivity <css
                        vueIndentScriptAndStyle: <bool>--vue-indent-script-and-stylefalse是否缩进Vue文件中
                        `endOfLine: “<lfcrlfcrauto>”`

                        与lint结合使用

                        安装eslint-config-prettiereslint-plugin-prettier: yarn add --dev eslint-config-prettier eslint-plugin-prettier

                        .eslintrc.json中增加配置:

                        {
                          "extends": ["prettier"],
                          "plugins": ["prettier"],
                          "rules": {
                            "prettier/prettier": "error"
                          }
                        }
                        FINISH

                        隨機文章
                        人生倒計時
                        default