javascript - 如何仅使用终端:?输出打开JS文件时vscode显示的问题列表

标签 javascript node.js typescript visual-studio-code

vscode 用来显示错误和警告的默认 jsconfig.json 或 tslint.json 是什么?


我想解决我的 JavaScript 项目中的所有问题。我没有 jsconfig.jsontsconfig.json 文件。我只是使用一些文件 //@ts-check

每次我打开文件 js 文件时,我都会在问题面板中看到警告列表。我想得到项目中所有文件中的问题。不只是打开的文件。 VS Studio doesn't support it ,所以我希望通过 CLI 执行 if。

我想使用 CLI 获取列表。所以它可以成为 CI 过程的一部分。我尝试将 tslinttypescript CLI 与我的自定义 tsconfig.jsontslint.json 一起使用,但我从来没有得到与 vscode 向我显示的完全相同的问题和警告。我相信 vscode 有一个默认的 tsconfig 和 tslint,它们用于显示信息。

我在typescript语言服务器的github和vscode的仓库上都没有找到。

换句话说:我正在搜索一个可以从终端启动的命令,如果我在 vscode 中打开同一个文件,它会列出所有问题,vscode 会向我显示这些问题.

enter image description here 如何在没有 tsconfig 或 jsconfig 文件的情况下使用终端获取此输出。

最佳答案

查看 //@ts-check 的错误会生成,您可以将 TypeScript 编译器 ( tsc ) 与 --noEmit 一起使用和 --allowJs标志:

npm install -g typescript
tsc --noEmit --allowJs fileToCheck.js

noEmit表示不会生成代码,但仍会输出错误。

要为项目中的每个文件运行此程序,最好的方法是创建一个非常简单的 jsconfig.json 在定义项目和基本设置的工作区的根目录下。文档有更多关于创建这些的详细信息,但这里有一个开始 jsconfig.json :

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es2016",
        "jsx": "preserve"
    },
    "exclude": [
        "node_modules",
        "**/node_modules/*"
    ]
}

然后运行:

tsc --noEmit -p jsconfig.json 

或者,如果您不想创建 jsconfig.json , 你可以尝试运行 tsc使用 find 处理工作区中的每个 js 文件:

tsc --noEmit --allowJs `find . ! -path '*/node_modules/*' -name "*.js"`

上面的代码处理了来自 TypeScript 本身的错误。但是,VS Code 可能会在单个文件中显示来自多个来源的错误,例如 typescript 和 tslint 以及代码拼写检查器。没有通用的方法可以从命令行获取它。

TSLint 和 eslint 等工具提供了它们自己的 CLI 供您使用。这是大多数开源项目用于验证的方式,因为这意味着开发人员可以使用他们喜欢的任何编辑器。例如,您的持续集成脚本将运行 tsc --noEmit -p jsconfig.json && eslint ... && ...

但是,如果您真的非常想得到与 VS Code 在编辑器中显示的完全相同的错误,我相信您可以使用类似于 vscode-test 的方法。运行控制 VS 代码实例的脚本。您想要用来获取错误的 VS Code API 是 getDiagnostics(resource: Uri)

关于javascript - 如何仅使用终端:?输出打开JS文件时vscode显示的问题列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472635/

相关文章:

node.js - 如何在 Node.js 项目中完美使用 Oracle DB

javascript - 运行用 TypeScript 编写的 Jasmine 测试

reactjs - 不能给函数组件警告 - 即使将 forwardRef() 与样式组件一起使用

angular - ng serve 和 ng build [Angular 5] 的 cli 配置中的不同 Assets

Angular patchValue 未设置输入字段值

javascript - hasPendingMacrotasks 和 hasPendingMicrotasks 检查什么?

Javascript 冲突

javascript - 什么构成了对基本 Google Maps JS api 的调用?

javascript - Eslint 错误导入没有扩展名的 jsx

node.js - 在同一亚马逊帐户上的存储桶之间移动文件