Prettier 上手和配置详情(建议ctrl+f搜索)

Prettier -- 专注于检查并自动更正代码风格

1.'ESLint' 主要解决了两类问题,代码质量和风格问题这两个问题,但是在代码风格解决上如果每次人为
去控制书写其实是一件痛苦的事,因此希望有一套自动化工具,帮我们检测代码是否规范,如果不规范,
则自动能够帮我们按照既定规范格式化

2.'Prettier' 声称自己是一个有主见的代码格式化工具 (opinionated code formatter),'Prettier '认为格式很重要,
不需要再思考究竟是用 'single quote',还是 'double quote'这些乱起的格式问题,'Prettier' 帮处理。最后的结果,
'Prettier '还给予了一部分配置项,可以通过 '.prettierrc' 文件修改

3.'ESLINT' 中:
    代码质量规则 (code-quality rules)
    no-unused-vars
    no-extra-bind
    no-implicit-globals
    prefer-promise-reject-errors
    ...
    代码风格规则 (code-formatting rules)
    max-len
    no-mixed-spaces-and-tabs
    keyword-spacing
    comma-style

ESLint 是否可替代 Prettier

1.'Eslint'码风格检查和 'Prettier'功能重叠,为什么还会出现' Prettier',
 1.1.'ESLint' 中的 'Formatting rules' 并非都提供了'fixer',
 1.2.'ESLint' 着重于 'JS/TS',无法兼顾 'CSS、Markdown' 的代码风格;

因此整体的代码风格规范化还得交给 Prettier。

前端代码规范化:EditorConfig + Prettier + ESLint

Prettier 快速上手

  • 安装,npm i prettier -D
  • 检查某个文件并输出检查结果,npx prettier style.css
  • 检查并格式化某个文件,npx prettier style.css --write
  • 检查并格式化项目所有文件,npx prettier . --write

插件介绍

  • eslint-config-prettier- 和一般的eslint-config-xxx不同,它不是用来共享 ESlint 配置的,而是用来关闭 ESLint 的样式规则的,避免 ESLint 的样式规则和 Prettier 冲突。使用该配置后,对代码进行prettiereslint就不会冲突了。但要注意一定要把它放在extends中最后的位置,避免后续的配置又把相关规则打开了。
  • eslint-plugin-prettier- 将 Prettier 集成到 ESlint 工作流中,不需要再单独使用prettier命令。将 Prettier 发现的代码样式问题当作一条 ESLint 规则,在运行eslint检查后显示出来,也同样可以在--fix时修复。需要配合eslint-config-prettier使用。个人使用了一下基本 OK,但是由于 Prettier 不像 ESLint 那样是单独的一条条规则,因此错误的显示不是很友好。

# 理解 Prettier 并用它统一你的代码风格

Prettier 和 ESLint 冲突

1.'eslint' 和 'Prettier' 都是对代码风格规则上的约束工具二者必然就会出现冲突解决方法:
  1.1.使用 'eslint-config-prettier'来关掉 (disable) 所有和 Prettier 冲突的 ESLint 的配置在 .eslintrc 里面将 
  prettier 设为最后一个 extends
    // .eslintrc    
    {      
        "extends": ["prettier"] // prettier 一定要是最后一个,才能确保覆盖    
    }
  1.2.使用插件'eslint-plugin-prettier',之前介绍过'plugin' 是扩展的规则,现在扩展'prettier '
    // .eslintrc    
    {      
        "plugins": ["prettier"],      
        "rules": {        
            "prettier/prettier": "error"      
        }    
    }
 1.3.将上面两个步骤和在一起就是下面的配置,也是官方的推荐配置
    // .eslintrc
    {
      "extends": ["plugin:prettier/recommended"]
    }

各个配置项

// .prettierrc.js
module.exports = {
    // 最大长度80个字符
    printWidth: 80,
    // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)
    singleQuote: true,
    // 行末分号, 默认true
    semi: true,
    // JSX双引号
    jsxSingleQuote: false,
    // 尽可能使用尾随逗号(包括函数参数),默认none,可选 none|es5|all
    // es5 包括es5中的数组、对象
    // all 包括函数对象等所有可选
    trailingComma: 'all',
    // 在对象文字中打印括号之间的空格。 默认true
    bracketSpacing: true,
    // 箭头函数参数括号 默认avoid 可选 avoid| always
    // avoid 能省略括号的时候就省略 例如x => x
    // always 总是有括号
    arrowParens: 'avoid',
    // 在文件顶部插入一个特殊的 @format 标记,指定文件格式需要被格式化。
    insertPragma: false,
    // 行尾换行格式
    endOfLine: 'auto',
    // html空格敏感度
    htmlWhitespaceSensitivity: 'ignore',
    // tab缩进大小,默认为2
    tabWidth: 2,
    // 使用tab缩进还是空格,默认false
    useTabs: true,
    // vue缩进脚本和样式
    vueIndentScriptAndStyle: false,
    // > 标签放在最后一行的末尾,而不是单独放在下一行 默认false
    jsxBracketSameLine: false,
};

Prettier vscode 配置

1.下载'prettier' 插件,然后在vscode 配置文件添加例如此时我只想格式的为'js'配置如下
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
对于 Prettier 和 ESLint 的配置,你可以按照以下步骤进行设置: 1. 首先,确保在你的项目中已经安装了 Prettier 和 ESLint。你可以使用以下命令进行安装: ``` npm install prettier eslint --save-dev ``` 2. 在你的项目根目录下创建一个 `.prettierrc` 文件,并在其中定义 Prettier配置选项。比如,你可以指定代码的缩进大小、单引号还是双引号等。以下是一个示例配置文件: ```json { "printWidth": 80, "tabWidth": 2, "useTabs": false, "semi": true, "singleQuote": true, "trailingComma": "es5", "bracketSpacing": true, "jsxBracketSameLine": false, "arrowParens": "avoid" } ``` 3. 接下来,在你的项目根目录下创建一个 `.eslintrc` 文件,并在其中定义 ESLint 的配置选项。你可以基于你的项目需求来选择不同的规则,或者使用一些预设规则。以下是一个示例配置文件: ```json { "extends": ["eslint:recommended", "plugin:prettier/recommended"], "rules": { // 在这里定义你自己的 ESLint 规则 } } ``` 此处我们使用了 `eslint:recommended` 预设规则和 `plugin:prettier/recommended` 插件,后者会自动禁用与 Prettier 冲突的 ESLint 规则。 4. 如果你使用的是 VS Code 编辑器,你可以安装以下插件以实现自动格式化和代码检查: - ESLint 插件:用于在编辑器中展示 ESLint 错误和警告,并提供自动修复功能。 - Prettier 插件:用于在保存文件时自动运行 Prettier 进行代码格式化。 完成以上步骤后,你可以根据你的配置选项来自定义代码的格式化和代码质量检查。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值