GitHub Actions for VS Code 项目教程
1. 项目的目录结构及介绍
GitHub Actions for VS Code 项目的目录结构如下:
vscode-github-actions/
├── .github/
│ └── workflows/
├── src/
│ ├── commands/
│ ├── common/
│ ├── components/
│ ├── contexts/
│ ├── extension/
│ ├── models/
│ ├── services/
│ ├── test/
│ └── utils/
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── package.json
├── README.md
└── tsconfig.json
目录介绍
- .github/workflows/: 包含项目的 GitHub Actions 工作流配置文件。
- src/: 项目的源代码目录,包含各种功能模块。
- commands/: 包含 VS Code 命令的实现。
- common/: 包含通用工具和辅助函数。
- components/: 包含 React 组件。
- contexts/: 包含 React 上下文。
- extension/: 包含扩展的主要入口点和生命周期管理。
- models/: 包含数据模型和类型定义。
- services/: 包含与 GitHub API 交互的服务。
- test/: 包含测试文件。
- utils/: 包含各种实用工具函数。
- .gitignore: 指定 Git 忽略的文件和目录。
- CONTRIBUTING.md: 贡献指南。
- LICENSE: 项目许可证。
- package.json: 项目的 npm 配置文件,包含依赖和脚本。
- README.md: 项目说明文档。
- tsconfig.json: TypeScript 配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/extension/extension.ts
,它是 VS Code 扩展的入口点。该文件负责初始化扩展并注册命令。
import * as vscode from 'vscode';
import { registerCommands } from '../commands';
export function activate(context: vscode.ExtensionContext) {
registerCommands(context);
}
export function deactivate() {}
启动文件介绍
- activate 函数: 当扩展被激活时调用,负责注册所有命令。
- deactivate 函数: 当扩展被停用时调用,目前为空。
3. 项目的配置文件介绍
项目的配置文件主要是 package.json
,它包含了扩展的所有配置信息,包括依赖、命令、贡献点等。
{
"name": "github-actions",
"displayName": "GitHub Actions",
"description": "GitHub Actions workflows and runs for GitHub.com hosted repositories in VS Code",
"version": "0.0.1",
"publisher": "github",
"engines": {
"vscode": "^1.50.0"
},
"categories": [
"Other"
],
"activationEvents": [
"onCommand:github-actions.helloWorld"
],
"main": "./out/extension.js",
"contributes": {
"commands": [
{
"command": "github-actions.helloWorld",
"title": "Hello World"
}
]
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"pretest": "npm run compile && npm run lint",
"lint": "eslint src --ext ts",
"test": "node ./out/test/runTest.js"
},
"devDependencies": {
"@types/vscode": "^1.50.0",
"@types/glob": "^7.1.3",
"@types/mocha": "^8.0.4",
"@types/node": "^12.11.7",
"eslint": "^7.10.0",
"glob": "^7.1.6",
"mocha": "^8.1.3",
"typescript": "^4.0.3",
"vscode-test": "^1.4.0"
}
}