在我安装并启用了ESlint和Prettier的Nuxt应用程序中,我切换到Visual Studio Code。

当我打开一个.vue文件并按CMD+ Shift + P并选择格式化文档时,我的文件根本没有被格式化。

我的.prettierrc设置:

{
  "tabWidth": 2,
  "semi": false,
  "singleQuote": true
}

我有这么多源代码行,所以我不能手动格式化它们。我做错了什么?


当前回答

最近我也遇到了同样的问题,那就是在保存代码时,pretty不会自动格式化代码。检查更漂亮,我看到一个错误:无效的“arrowParens”值。期望“总是”或“避免”,但得到的是真的。

当我点击这个时,看到错误消息:

结果我也安装了“现在更漂亮”。这在我的配置文件中有一个布尔值。卸载“现在更漂亮”后,一切正常。

其他回答

在Windows上:

我们可以使用以下命令打开下面的文件:

Start > Run 

文件路径:

%AppData%\Code\User\settings.json

改变 来自:

"[javascript]": {
    "editor.defaultFormatter": "vscode.typescript-language-features"
},

To:

"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},

注意:

如果上述内容不存在,请添加而不是更改。 您应该已经安装了“更漂亮的代码格式化器”,以查看上述更改的效果- https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

如果Prettier在保存时自动格式化除HTML文件外的所有其他文件:

按Cmd + P或Ctrl + P打开命令面板,并在其中输入以下文本:

> open settings

从建议下拉菜单中单击Preferences: Open Settings (JSON)。 在设置里面。检查[html]键是否存在。如果该键存在,并且它的值指示使用Visual Studio Code中安装的另一个格式化扩展,则应将其重置为使用Prettier。

"[html]": {
    "esbenp.prettier-vscode"
}

例如,有时“[html]”键的值可以是“remimarsal”。当你安装了“现在更漂亮”扩展时。

如果你没有安装任何其他格式扩展,除了pretty,你也可以从设置中删除“[html]”键。json文件。

你可以试着把这个部分添加到你的VS Code设置中吗?json文件吗?

"[javascript]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
},

有时候,当代码中出现语法错误时,“漂亮”就会停止工作。你可以通过点击右下角pretty旁边的x按钮来查看错误

这里我的漂亮配置工作在vue.js文件,typescript文件和json文件。

arrowParens: 'always'
bracketSpacing: true
endOfLine: 'crlf'
htmlWhitespaceSensitivity: 'css'
insertPragma: false
jsxBracketSameLine: false
jsxSingleQuote: true
overrides:
- files: '*.json'
  options:
    semi: true
    parser: 'json'
parser: 'babel'
printWidth: 120
proseWrap: 'preserve'
quoteProps: 'truepreserve'
requirePragma: false
semi: false
singleQuote: true
tabWidth: 8
trailingComma: 'es5'
useTabs: true
vueIndentScriptAndStyle: 

不要忘记更新你的vscode设置

{
"extensions.ignoreRecommendations": false,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
    "editor.defaultFormatter": "octref.vetur"
},
"[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
    "editor.defaultFormatter": "vscode.html-language-features"
},
"vetur.format.options.useTabs": true}

那是所有人的事!