Trivy VSCode 扩展使用教程
1. 项目的目录结构及介绍
Trivy VSCode 扩展的目录结构如下:
trivy-vscode-extension/
├── github/workflows/
├── vscode/
├── images/
├── media/
├── resources/
├── src/
├── .eslintrc.json
├── .gitignore
├── .vscodeignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── findings-explorer.gif
├── package-lock.json
├── package.json
├── trivy-scan.gif
├── tsconfig.json
└── vsc-extension-quickstart.md
目录介绍:
github/workflows/
: 包含 GitHub Actions 的工作流配置文件。vscode/
: 包含 VSCode 扩展的相关配置文件。images/
: 包含项目使用的图片资源。media/
: 包含项目使用的媒体资源。resources/
: 包含项目使用的资源文件。src/
: 包含扩展的主要源代码。.eslintrc.json
: ESLint 配置文件。.gitignore
: Git 忽略文件配置。.vscodeignore
: VSCode 忽略文件配置。CHANGELOG.md
: 项目更新日志。LICENSE
: 项目许可证。README.md
: 项目说明文档。findings-explorer.gif
: 发现资源管理器的演示动画。package-lock.json
: npm 依赖锁定文件。package.json
: 项目依赖和配置文件。trivy-scan.gif
: Trivy 扫描的演示动画。tsconfig.json
: TypeScript 配置文件。vsc-extension-quickstart.md
: VSCode 扩展快速启动指南。
2. 项目的启动文件介绍
项目的启动文件主要是 src/extension.ts
,该文件是扩展的入口点,负责注册命令和初始化扩展。
// src/extension.ts
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
console.log('Congratulations, your extension "trivy-vscode-extension" is now active!');
let disposable = vscode.commands.registerCommand('extension.trivyScan', () => {
vscode.window.showInformationMessage('Running Trivy Scan...');
});
context.subscriptions.push(disposable);
}
export function deactivate() {}
启动文件介绍:
activate
函数:当扩展被激活时调用,注册命令extension.trivyScan
。deactivate
函数:当扩展被停用时调用。
3. 项目的配置文件介绍
项目的配置文件主要是 package.json
,该文件包含了扩展的元数据、依赖和命令配置。
{
"name": "trivy-vscode-extension",
"displayName": "Trivy Vulnerability Scanner",
"description": "A VS Code Extension for Trivy",
"version": "1.0.0",
"publisher": "aquasecurityofficial",
"engines": {
"vscode": "^1.50.0"
},
"categories": [
"Other"
],
"activationEvents": [
"onCommand:extension.trivyScan"
],
"main": "./src/extension.ts",
"contributes": {
"commands": [
{
"command": "extension.trivyScan",
"title": "Trivy Scan"
}
]
},
"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