【问题标题】:Why does running prettier check return error "Couldn't resolve parser "babel-ts"" when using the babel-ts parser?为什么在使用 babel-ts 解析器时运行 prettier check 会返回错误“无法解析解析器“babel-ts””?
【发布时间】:2021-05-15 01:59:35
【问题描述】:

当我使用如下所示的更漂亮的配置调用命令 check: `prettier --check '**/*.ts' 时,我收到错误消息,指出 babel-ts 解析器未解析。我目前正在使用更漂亮的 2.3,它确实支持这个parser,所以我对我可能做错了什么感到有点困惑。

printWidth: 100
singleQuote: true
trailingComma: all
tabWidth: 2
useTabs: false
overrides:
  - files: "*.ts"
    options:
      parser: babel-ts

我尝试过使用各种配置格式(js、json 等)并在根目录上使用解析器配置,但似乎都不会影响奇怪的行为。

我的包配置:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "tsc -p ."
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/node": "^15.0.3"
  },
  "devDependencies": {
    "prettier": "^2.3.0",
    "typescript": "^4.2.4"
  }
}

测试文件index.ts

let a:number = 6

完全错误:

$ prettier --check '*.ts' 
Checking formatting...
index.ts[error] Error: Couldn't resolve parser "babel-ts"

注意:Prettier 仅在本地安装,而不是全局安装

【问题讨论】:

  • 你是否全局安装了 prettier 而没有全局安装 babel-ts?
  • 我认为你需要分享更多关于你的包配置和更漂亮的安装。
  • @cefn 我需要安装 babel-ts 吗?阅读更漂亮的文档,他们没有提到安装额外的包。我认为最初可能是这种情况,但我找不到任何信息:/
  • @justin 是的,你需要安装解析器
  • 从我通过引入支持的 Prettier 版本看到的内容推测这里,但 babel-ts 看起来像 Prettier 中的内置解析器配置,但依赖于 babel 插件的外部依赖项,我我猜测依赖是babeljs.io/docs/en/babel-preset-typescript

标签: typescript config prettier


【解决方案1】:

这很令人沮丧。所以重申一下,安装是本地的而不是全局的,但是,当从项目目录运行时,它只会在使用 babel-ts 解析器时返回错误。如果我选择了另一个解析器,它工作正常。这可能是由于库中一些奇怪的路径逻辑造成的?不确定。

但是,如果我运行这个以 yarn ie 为前缀的命令:

yarn prettier --check '*.ts'

它工作正常。仍然觉得很奇怪,它只不适用于 babel-ts 解析器。

更新: 即使它不存在于我的 npm/yarn 全局变量中,它仍然存在于我的 linux 系统中。我猜在某个时候我使用了一个尚未更新到更漂亮> 2.0 的 AUR 包。别忘了注意这些!

【讨论】:

  • 您在全球范围内安装了另一个 Prettier 版本。它已经足够老了,没有babel-ts。当您在没有yarn 的情况下运行prettier 时,可以在您的PATH 中找到此版本。本地安装的包不会添加到PATH
  • 这就是我的想法,但是检查 npm -g list 和 yarn global list 会出现 nada。它可能在我系统的某个地方,尽管这是唯一有意义的方法。我确实使用 nvm,也许它在旧版本节点的文件夹中
  • 找到了罪魁祸首。当不被节点/纱线跟踪时,一定是从很久以前开始的。
猜你喜欢
  • 2017-10-05
  • 2020-11-18
  • 2017-11-13
  • 2017-03-30
  • 2017-08-04
  • 2016-04-04
  • 2022-06-23
  • 1970-01-01
  • 2023-01-26
相关资源
最近更新 更多