typescript - 为什么在使用 babel-ts 解析器时运行 prettier check 会返回错误“Couldn't resolve parser "babel-ts"”?
问题描述
当我使用如下所示的更漂亮的配置调用命令 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 只安装在本地而不是全局安装
解决方案
好吧,这令人沮丧。所以重申一下,安装是本地的而不是全局的,但是,当从项目目录运行时,它只会在使用 babel-ts 解析器时返回错误。如果我选择了另一个解析器,它工作正常。这可能是由于库中一些奇怪的路径逻辑造成的?没有把握。
但是,如果我运行以 yarn 为前缀的命令,即:
yarn prettier --check '*.ts'
有用。仍然觉得很奇怪,它只不适用于 babel-ts 解析器。
更新:即使它不存在于我的 npm/yarn 全局变量中,它仍然存在于我的 linux 系统中。我猜在某个时候我使用了一个尚未更新到更漂亮> 2.0 的 AUR 包。别忘了注意这些!
推荐阅读
- firebase - 使用我的投票应用程序(android studio)的firebase保存和更新值
- python - “SpotifyOauthError:错误:invalid_request,error_description:必须提供代码”当我输入 URL
- r - 如何在r中移动字符串中的模式?
- javascript - 服务器错误类型错误:_nextProps.children 不是函数 _document getInitialProps
- docker - Docker for Windows 卡在“Kubernetes 正在启动”
- c# - 我试图在结构字段上使用 Reflection.FieldInfo.SetValue 来修改其值,但无济于事。为什么?(提供了 C# 和 VB 中的代码。)
- node.js - 克隆一个使用工具栏、预定义组件和画板生成代码的应用程序
- python - 在 PyQt/PySide 中连接点击信号时 lambda 和 partial 的区别
- python - json 模块中的 Object_hook 似乎没有按预期工作
- javascript - 面向三个.js 的边界框