目前此仓库存放的不仅仅维护了 ArkTS 的 VSCode 扩展,还维护了 ArkTS 的 volar 语言服务器、插件、类型定义和虚拟文件系统等一系列底层工具链,他们都会被发布到 npm 的 @arkts 命名空间下。在提交 Pull Request 前,请确保您已经阅读并理解了以下内容。
packages/vscode: 存储ArkTS的VSCode扩展代码packages/language-server: 存储ArkTS的语言服务器启动代码,依赖packages/language-service和packages/shared包packages/language-service: 存储ArkTS的语言服务代码,依赖packages/shared包packages/language-plugin: 存储ArkTS的语言插件代码,依赖packages/shared包packages/shared: 存储当前整个仓库的一些通用代码packages/types: 存储build-profile.json5等文件的类型定义packages/vfs:ArkTS版虚拟文件系统,原 npm 包名为@typescript/vfs
必须有node、pnpm和git环境,并且建议装一个vscode或者类vscode的编辑器(如cursor/trae/windsurf等)。首先使用git克隆本仓库:
git clone https://github.com/groupguanfang/arkTS.git --recursive请携带--recursive参数,这样就能自动克隆子模块。如果您在克隆的时候没有携带该参数,请手动执行以下命令:
git submodule update --init --recursive然后cd到项目根目录下,使用pnpm安装依赖:
pnpm install使用vscode打开文件夹打开项目根目录,点击键盘上的F5即可启动一个扩展开发宿主进程,打开另一个vscode窗口,开始调试项目。
请在你的vscode中安装volar labs插件,这样就能看到virtual code的转换过程。
本项目使用@antfu/eslint-config作为eslint代码检查规则,并使用了tsc的Project reference模式进行类型检查。提交Pull Request前,可以运行以下命令进行代码检查与类型检查:
pnpm run lint这实际上是运行了以下命令:
pnpm eslint
pnpm oxlint
pnpm tsc --build --noEmit # 类型检查, 使用 tsc 的 Project reference 模式如果您忘记了运行检查,Pull Request的CI会自动运行检查,并提示您修复问题。
运行pnpm install除了会安装依赖之外,还会调用tsdown编译整个项目,实际上就是运行了以下命令:
pnpm -F \"{packages/*}\" build您也可以手动运行此命令进行编译。
打包之前请务必先运行pnpm run build编译项目,并且检查git sub-module是否已经克隆在了本地。然后运行以下命令进行打包:
pnpm run pack该命令会使用vsce命令打包扩展。打包完成后,会在packages/vscode目录下生成一个vscode-naily-ets-<version>.vsix文件,可以将其直接使用类vscode的编辑器在扩展页面中安装。