跳至主要内容

sv check

sv check 查找项目中的错误和警告,例如

  • 未使用的 CSS
  • 辅助功能提示
  • JavaScript/TypeScript 编译器错误

需要 Node 16 或更高版本。

安装

您需要在项目中安装 svelte-check

npm i -D svelte-check

用法

npx sv check

选项

--workspace <path>

工作区路径。除 node_modules--ignore 中列出的目录外,所有子目录都将被检查。

--output <format>

如何显示错误和警告。请参阅 机器可读输出

  • human
  • human-verbose
  • machine
  • machine-verbose

--watch

使进程保持活动状态并监视更改。

--preserveWatchOutput

防止在监视模式下清除屏幕。

--tsconfig <path>

传递 tsconfigjsconfig 文件的路径。该路径可以相对于工作区路径或为绝对路径。执行此操作意味着仅诊断配置文件的 files / include/exclude 模式匹配的文件。这也意味着会报告 TypeScript 和 JavaScript 文件的错误。如果未提供,则会从项目目录向上遍历,查找下一个 jsconfig/tsconfig.json 文件。

--no-tsconfig

如果您只想检查当前目录及其下方的 Svelte 文件并忽略任何 .js / .ts 文件(它们不会被类型检查),请使用此选项。

--ignore <paths>

要忽略的文件/文件夹,相对于工作区根目录。路径应以逗号分隔并加引号。示例

npx sv check --ignore "dist,build"

仅在与 --no-tsconfig 结合使用时才有效。当与 --tsconfig 结合使用时,这仅对监视的文件有效,而对诊断的文件无效,这由 tsconfig.json 确定。

--fail-on-warnings

如果提供,警告将导致 sv check 退出并显示错误代码。

--compiler-warnings <warnings>

一个用引号括起来的、以逗号分隔的 code:behaviour 对列表,其中 code编译器警告代码behaviourignoreerror

npx sv check --compiler-warnings "css_unused_selector:ignore,a11y_missing_attribute:error"

--diagnostic-sources <sources>

一个用引号括起来的、以逗号分隔的源列表,这些源应在您的代码上运行诊断。默认情况下,所有源都处于活动状态

  • js(包括 TypeScript)
  • svelte
  • css

示例

npx sv check --diagnostic-sources "js,svelte"

--threshold <level>

筛选诊断信息

  • warning(默认)— 显示错误和警告
  • error — 仅显示错误

故障排除

有关预处理器设置和其他故障排除的更多信息,请参阅 language-tools 文档

机器可读输出

--output 设置为 machinemachine-verbose 将以机器更容易读取的方式格式化输出,例如在 CI 管道内、用于代码质量检查等。

每一行对应一个新记录。行由以单个空格字符分隔的列组成。每行的第一列包含一个以毫秒为单位的时间戳,可用于监视目的。第二列提供“行类型”,根据该类型,后续列的数量和类型可能会有所不同。

第一行类型为 START,包含工作区文件夹(用引号括起来)。示例

1590680325583 START "/home/user/language-tools/packages/language-server/test/plugins/typescript/testfiles"

可以跟随任意数量的 ERRORWARNING 记录。它们的结构相同,并取决于 output 参数。

如果参数为 machine,它将告诉我们文件名、起始行号和列号以及错误消息。文件名相对于工作区目录。文件名和消息都用引号括起来。示例

1590680326283 ERROR "codeactions.svelte" 1:16 "Cannot find module 'blubb' or its corresponding type declarations."
1590680326778 WARNING "imported-file.svelte" 0:37 "Component has unused export property 'prop'. If it is for external reference only, please consider using `export const prop`"

如果参数为 machine-verbose,它将告诉我们文件名、起始行号和列号、结束行号和列号、错误消息、诊断代码、代码的用户友好描述以及诊断的用户友好来源(例如 svelte/typescript)。文件名相对于工作区目录。每个诊断都表示为以日志时间戳为前缀的 ndjson 行。示例

1590680326283 {"type":"ERROR","fn":"codeaction.svelte","start":{"line":1,"character":16},"end":{"line":1,"character":23},"message":"Cannot find module 'blubb' or its corresponding type declarations.","code":2307,"source":"js"}
1590680326778 {"type":"WARNING","filename":"imported-file.svelte","start":{"line":0,"character":37},"end":{"line":0,"character":51},"message":"Component has unused export property 'prop'. If it is for external reference only, please consider using `export
const prop`","code":"unused-export-let","source":"svelte"}

输出以 COMPLETED 消息结束,该消息总结了在检查期间遇到的文件、错误和警告的总数。示例

1590680326807 COMPLETED 20 FILES 21 ERRORS 1 WARNINGS 3 FILES_WITH_PROBLEMS

如果应用程序遇到运行时错误,此错误将显示为 FAILURE 记录。示例

1590680328921 FAILURE "Connection closed"

致谢

  • Vue 的 VTIsvelte-check 打下了基础

常见问题

为什么没有仅检查特定文件(例如仅暂存的文件)的选项?

svelte-check 需要“查看”整个项目才能使检查有效。假设您重命名了一个组件 prop 但没有更新使用该 prop 的任何位置——使用站点现在都是错误,但如果检查仅在更改的文件上运行,您会错过它们。

在 GitHub 上编辑此页面

上一页 下一页