ol-base-components 2.8.1 → 2.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/install-vscode.js +106 -76
package/package.json
CHANGED
|
@@ -3,105 +3,135 @@ const fs = require("fs");
|
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const os = require("os");
|
|
5
5
|
|
|
6
|
-
// 检测 VSCode 扩展目录
|
|
6
|
+
// 检测 VSCode/Cursor 扩展目录
|
|
7
7
|
function getVSCodeExtensionsPath() {
|
|
8
8
|
const platform = os.platform();
|
|
9
9
|
const homeDir = os.homedir();
|
|
10
10
|
|
|
11
11
|
switch (platform) {
|
|
12
12
|
case "win32":
|
|
13
|
-
return
|
|
13
|
+
return [
|
|
14
|
+
path.join(homeDir, ".vscode", "extensions"),
|
|
15
|
+
path.join(homeDir, ".cursor", "extensions"), // Cursor 扩展目录
|
|
16
|
+
path.join(homeDir, "AppData", "Roaming", "Cursor", "User", "extensions"), // Cursor 另一个可能的位置
|
|
17
|
+
];
|
|
14
18
|
case "darwin":
|
|
15
|
-
return
|
|
19
|
+
return [
|
|
20
|
+
path.join(homeDir, ".vscode", "extensions"),
|
|
21
|
+
path.join(homeDir, ".cursor", "extensions"),
|
|
22
|
+
path.join(homeDir, "Library", "Application Support", "Cursor", "User", "extensions"),
|
|
23
|
+
];
|
|
16
24
|
case "linux":
|
|
17
|
-
return
|
|
25
|
+
return [
|
|
26
|
+
path.join(homeDir, ".vscode", "extensions"),
|
|
27
|
+
path.join(homeDir, ".cursor", "extensions"),
|
|
28
|
+
path.join(homeDir, ".config", "Cursor", "User", "extensions"),
|
|
29
|
+
];
|
|
18
30
|
default:
|
|
19
31
|
throw new Error("Unsupported platform");
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
34
|
|
|
23
|
-
// 安装 VSCode 扩展
|
|
35
|
+
// 安装 VSCode/Cursor 扩展
|
|
24
36
|
function installVSCodeExtension() {
|
|
25
37
|
try {
|
|
26
|
-
const
|
|
38
|
+
const extensionsPaths = getVSCodeExtensionsPath();
|
|
27
39
|
const extensionName = "vue-page-generator";
|
|
28
|
-
const extensionDir = path.join(extensionsPath, extensionName);
|
|
29
40
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
41
|
+
let installed = false;
|
|
42
|
+
|
|
43
|
+
for (const extensionsPath of extensionsPaths) {
|
|
44
|
+
if (fs.existsSync(extensionsPath)) {
|
|
45
|
+
const extensionDir = path.join(extensionsPath, extensionName);
|
|
46
|
+
|
|
47
|
+
// 创建扩展目录
|
|
48
|
+
if (!fs.existsSync(extensionDir)) {
|
|
49
|
+
fs.mkdirSync(extensionDir, { recursive: true });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 复制扩展文件
|
|
53
|
+
const srcDir = path.join(__dirname, "../src/vscode");
|
|
54
|
+
const files = ["extension.js"];
|
|
55
|
+
|
|
56
|
+
files.forEach(file => {
|
|
57
|
+
const srcFile = path.join(srcDir, file);
|
|
58
|
+
const destFile = path.join(extensionDir, file);
|
|
59
|
+
|
|
60
|
+
if (fs.existsSync(srcFile)) {
|
|
61
|
+
fs.copyFileSync(srcFile, destFile);
|
|
62
|
+
console.log(`✅ 复制文件: ${file}`);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
// 复制 webview 目录
|
|
67
|
+
const webviewSrcDir = path.join(srcDir, "webview");
|
|
68
|
+
const webviewDestDir = path.join(extensionDir, "webview");
|
|
69
|
+
|
|
70
|
+
if (fs.existsSync(webviewSrcDir)) {
|
|
71
|
+
if (!fs.existsSync(webviewDestDir)) {
|
|
72
|
+
fs.mkdirSync(webviewDestDir, { recursive: true });
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const panelFile = path.join(webviewSrcDir, "panel.js");
|
|
76
|
+
const panelDestFile = path.join(webviewDestDir, "panel.js");
|
|
77
|
+
|
|
78
|
+
if (fs.existsSync(panelFile)) {
|
|
79
|
+
fs.copyFileSync(panelFile, panelDestFile);
|
|
80
|
+
console.log("✅ 复制文件: webview/panel.js");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// 创建 package.json
|
|
85
|
+
const packageJson = {
|
|
86
|
+
name: extensionName,
|
|
87
|
+
displayName: "Vue Page Generator",
|
|
88
|
+
description: "Generate Vue CRUD pages from Swagger API",
|
|
89
|
+
version: "0.0.1",
|
|
90
|
+
engines: {
|
|
91
|
+
vscode: "^1.60.0",
|
|
92
|
+
},
|
|
93
|
+
activationEvents: ["onCommand:vue-generator.createPage"],
|
|
94
|
+
main: "./extension.js",
|
|
95
|
+
contributes: {
|
|
96
|
+
commands: [
|
|
97
|
+
{
|
|
98
|
+
command: "vue-generator.createPage",
|
|
99
|
+
title: "Generate Vue Page",
|
|
100
|
+
category: "Vue Generator",
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
menus: {
|
|
104
|
+
"explorer/context": [
|
|
105
|
+
{
|
|
106
|
+
command: "vue-generator.createPage",
|
|
107
|
+
group: "navigation",
|
|
108
|
+
when: "resourceExtname == .vue || resourceExtname == .js || resourceExtname == .ts || resourceExtname == .jsx || resourceExtname == .tsx",
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
};
|
|
52
114
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
115
|
+
const packageJsonPath = path.join(extensionDir, "package.json");
|
|
116
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
117
|
+
console.log("✅ 创建文件: package.json");
|
|
57
118
|
|
|
58
|
-
|
|
59
|
-
|
|
119
|
+
console.log(`\n�� VSCode/Cursor 扩展安装成功!`);
|
|
120
|
+
console.log("请重启 Cursor 以激活扩展。");
|
|
121
|
+
console.log("安装位置:", extensionDir);
|
|
60
122
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
console.log("✅ 复制文件: webview/panel.js");
|
|
123
|
+
installed = true;
|
|
124
|
+
break;
|
|
64
125
|
}
|
|
65
126
|
}
|
|
66
127
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
vscode: "^1.60.0",
|
|
75
|
-
},
|
|
76
|
-
activationEvents: ["onCommand:vue-generator.createPage"],
|
|
77
|
-
main: "./extension.js",
|
|
78
|
-
contributes: {
|
|
79
|
-
commands: [
|
|
80
|
-
{
|
|
81
|
-
command: "vue-generator.createPage",
|
|
82
|
-
title: "Generate Vue Page",
|
|
83
|
-
category: "Vue Generator",
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
menus: {
|
|
87
|
-
"explorer/context": [
|
|
88
|
-
{
|
|
89
|
-
command: "vue-generator.createPage",
|
|
90
|
-
group: "navigation",
|
|
91
|
-
when: "resourceExtname == .vue || resourceExtname == .js",
|
|
92
|
-
},
|
|
93
|
-
],
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
const packageJsonPath = path.join(extensionDir, "package.json");
|
|
99
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
100
|
-
console.log("✅ 创建文件: package.json");
|
|
101
|
-
|
|
102
|
-
console.log("\n�� VSCode 扩展安装成功!");
|
|
103
|
-
console.log("请重启 VSCode 以激活扩展。");
|
|
104
|
-
console.log("安装位置:", extensionDir);
|
|
128
|
+
if (!installed) {
|
|
129
|
+
console.log("❌ 未找到 VSCode 或 Cursor 扩展目录");
|
|
130
|
+
console.log("尝试的路径:");
|
|
131
|
+
extensionsPaths.forEach(path => {
|
|
132
|
+
console.log(" -", path);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
105
135
|
} catch (error) {
|
|
106
136
|
console.error("❌ 安装失败:", error.message);
|
|
107
137
|
process.exit(1);
|