Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

用 Prettier 美化代码 #18

Open
shaozj opened this issue Jan 31, 2018 · 5 comments
Open

用 Prettier 美化代码 #18

shaozj opened this issue Jan 31, 2018 · 5 comments

Comments

@shaozj
Copy link
Owner

shaozj commented Jan 31, 2018

Eslint 解决了代码格式检查的问题,同时,一些有用的提示能让我们发现 bug 和无用代码(如 no-unused-vars, no-extra-bind, no-implicit-globals)。但是,eslint 并不能自动帮我们美化代码,自动让代码风格统一,格式优美。EditorConfig 部分解决了这个问题,它解决了代码缩进,行末不出现空格符等问题,但是对于统一整个代码的风格,这些做得还是太少了。Prettier 很好地解决了剩下的问题,通过配置,我们可以制定想要的代码风格,然后通过脚本或编辑器插件来一键格式化/美化代码。

安装使用

安装

# 全局或本地安装二选一,都能生效
npm install --save-dev prettier    # 本地 
npm install --g prettier           # 全局

使用

prettier [opts] [filename ...]
# 例子
prettier --single-quote --trailing-comma es5 --write "{app,__{tests,mocks}__}/**/*.js"

编辑器设置

一般我们配合编辑器使用 Prettier,这样我们在写代码时即可美化代码,及时看到效果。以 sublime 为例,可以这么设置:

1、安装 Js​Prettier 插件

首先要确定已经全局或局部安装了 prettier 的 npm 包。

  • ctrl/cmd + shift + p 输入 Install Package
  • 然后输入 JsPrettier 找到包并安装

2、使用 Js​Prettier

ctrl/cmd + shift + p 输入 JsPrettier: Format Code.

点击即可格式化当前文件代码。

或者设置快捷键 { "keys": ["super+alt+f"], "command": "js_prettier" }

3、编写自己的配置文件

如果不编写自己的配置文件,一般会使用 sublime JsPrettier 插件自带的配置文件。我们希望使用项目自己的配置文件,可以在项目根目录下编写 .prettierrc 文件。
prettier 查找配置的方式首先会找当前目录下的 .prettierrc 文件,找不到会一直向上级目录查找,直到找到或找不到。

参考配置

.prettierrc 

{
  "printWidth": 120,               // 换行字符串阈值
  "semi": true,                    // 句末加分号
  "singleQuote": true,             // 用单引号
  "trailingComma": "none",         // 最后一个对象元素加逗号
  "bracketSpacing": true,          // 对象,数组加空格
  "jsxBracketSameLine": false,     // jsx > 是否另起一行
  "arrowParens": "avoid",          // (x) => {} 是否要有小括号
  "requirePragma": false,          // 是否要注释来决定是否格式化代码
  "proseWrap": "preserve"          // 是否要换行
}

参考文档

@medmin
Copy link

medmin commented Jun 8, 2019

我其实非常讨厌prettier对 (a, b, c)的自动换行,就成了

(
   a,
   b,
   c
)

这个有什么option来修改吗?查了半天没查到

@liuquanliang520
Copy link

我其实非常讨厌prettier对 (a, b, c)的自动换行,就成了

(
   a,
   b,
   c
)

这个有什么option来修改吗?查了半天没查到

找到了如何设置吗?

@shaozj
Copy link
Owner Author

shaozj commented Aug 27, 2019

我其实非常讨厌prettier对 (a, b, c)的自动换行,就成了

(
   a,
   b,
   c
)

这个有什么option来修改吗?查了半天没查到

我好想没遇到这个问题,怎么复现?

@shaozj
Copy link
Owner Author

shaozj commented Aug 27, 2019

我其实非常讨厌prettier对 (a, b, c)的自动换行,就成了

(
   a,
   b,
   c
)

这个有什么option来修改吗?查了半天没查到

找到了如何设置吗?

可以尝试下在编辑器中做如下配置,利用 eslint 和 tslint 来设置格式化规则:

"prettier.eslintIntegration": true,
"prettier.tslintIntegration": true,

@puzzle9
Copy link

puzzle9 commented Aug 15, 2020

我其实非常讨厌prettier对 (a, b, c)的自动换行,就成了

(
   a,
   b,
   c
)

这个有什么option来修改吗?查了半天没查到

https://prettier.io/docs/en/ignore.html

貌似加 // prettier-ignore 可以解决 还有没有其他方案

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants