Skip to content

Commit 9eb23c8

Browse files
authored
feat(core): 改进扩展目录获取逻辑以提高兼容性 (#74)
* feat(core): 改进扩展目录获取逻辑以提高兼容性 重构了 `getExtensionsDirectory` 方法,优先通过已安装的扩展路径推断扩展目录, 如果无法获取,则回退到使用 `getVSCodeExtensionsDirectory` 工具函数。 此举增强了在不同 VS Code 环境下的兼容性和鲁棒性。 * fix: 移除audit ci/cd
1 parent a4a9325 commit 9eb23c8

File tree

4 files changed

+15
-29
lines changed

4 files changed

+15
-29
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ jobs:
3636
echo "🔍 Checking for unused dependencies..."
3737
npx depcheck || echo "⚠️ Some dependencies might be unused"
3838
39-
- name: Security audit
40-
run: |
41-
echo "🔒 Running security audit..."
42-
pnpm audit --audit-level moderate || echo "⚠️ Security vulnerabilities found"
43-
4439
security:
4540
name: Security Check
4641
runs-on: ubuntu-latest
@@ -52,9 +47,6 @@ jobs:
5247
- name: Setup Node.js and pnpm
5348
uses: ./.github/actions/setup-node-pnpm
5449

55-
- name: Run security audit
56-
run: pnpm audit --audit-level moderate
57-
5850
- name: Check for secrets
5951
uses: trufflesecurity/trufflehog@main
6052
with:

.github/workflows/nightly.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ jobs:
4343
build-info.txt
4444
retention-days: 30
4545

46-
- name: Check for security vulnerabilities
47-
run: |
48-
echo "🔒 Running security audit..."
49-
pnpm audit --audit-level moderate || echo "⚠️ Security vulnerabilities found"
50-
5146
- name: Check for outdated dependencies
5247
run: |
5348
echo "📦 Checking for outdated dependencies..."
@@ -61,8 +56,6 @@ jobs:
6156
echo "## Outdated Dependencies" >> dependency-report.md
6257
pnpm outdated >> dependency-report.md 2>&1 || echo "All dependencies are up to date" >> dependency-report.md
6358
echo "" >> dependency-report.md
64-
echo "## Security Audit" >> dependency-report.md
65-
pnpm audit --audit-level moderate >> dependency-report.md 2>&1 || echo "No security issues found" >> dependency-report.md
6659
6760
- name: Upload dependency report
6861
uses: actions/upload-artifact@v4

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@
155155
"build": "pnpm run package",
156156
"build:vsix": "vsce package",
157157
"publish:vsix": "pnpm vsce publish --no-dependencies",
158-
"security:audit": "pnpm audit --audit-level moderate",
159158
"deps:check": "depcheck",
160159
"deps:outdated": "pnpm outdated"
161160
},

src/core/extensionManager.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ErrorHandler, ErrorType } from './errorHandler';
77
import { logger } from './logger';
88
import { ExtensionImportResult } from './reportManager';
99
import { isExtensionIgnored } from '../types/constants';
10+
import { getVSCodeExtensionsDirectory } from '../utils/vscodeEnvironment';
1011

1112
export interface ExtensionComparisonResult {
1213
id: string;
@@ -347,21 +348,22 @@ export class ExtensionManager {
347348
* 获取扩展目录
348349
*/
349350
private getExtensionsDirectory(): string {
350-
if (process.env.VSCODE_PORTABLE) {
351-
return path.join(process.env.VSCODE_PORTABLE, 'data', 'extensions');
351+
// 方法1: 从已安装的扩展路径推断扩展目录
352+
const installedExtensions = vscode.extensions.all.filter((ext) => !ext.packageJSON.isBuiltin);
353+
354+
if (installedExtensions.length > 0) {
355+
// 获取第一个非内置扩展的路径
356+
const firstExtPath = installedExtensions[0].extensionPath;
357+
// 扩展路径格式: /path/to/extensions/publisher.name-version
358+
// 我们需要获取 extensions 目录
359+
const extensionsDir = path.dirname(firstExtPath);
360+
logger.debug(`从已安装扩展推断扩展目录: ${extensionsDir}`);
361+
return extensionsDir;
352362
}
353363

354-
const platform = os.platform();
355-
const homeDir = os.homedir();
356-
357-
switch (platform) {
358-
case 'win32':
359-
case 'darwin':
360-
case 'linux':
361-
return path.join(homeDir, '.vscode', 'extensions');
362-
default:
363-
return path.join(homeDir, '.vscode', 'extensions');
364-
}
364+
// 方法2: 如果没有已安装的扩展,使用 vscodeEnvironment 工具函数作为后备
365+
logger.debug('没有找到已安装的扩展,使用后备方法获取扩展目录');
366+
return getVSCodeExtensionsDirectory();
365367
}
366368

367369
/**

0 commit comments

Comments
 (0)