首页 > 解决方案 > 如何仅使用终端输出vscode打开JS文件时显示的问题列表:?

问题描述

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


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

每次我打开文件js文件时,我都会在问题面板中看到警告列表。我想解决项目中所有文件的问题。不只是打开的文件。VS Studio 不支持它,所以我希望通过 CLI 来做。

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

我在 typescript 语言服务器的 GitHub 和 vscode 的存储库上没有找到这个。

换句话说:我正在寻找一个可以从终端启动的命令,如果我在 vscode 中打开同一个文件,我会列出 vscode 将显示的所有问题。

在此处输入图像描述 如何在没有 tsconfig 或 jsconfig 文件的情况下使用终端获取此输出。

标签: javascriptnode.jstypescriptvisual-studio-code

解决方案


要查看//@ts-check将生成的错误,您可以使用带有and标志的 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使用工作区中的每个 js 文件运行find

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 Code 实例的脚本。您想要用来获取错误的 VS Code API 是getDiagnostics(resource: Uri)


推荐阅读