ol-base-components 2.8.5 → 2.8.6
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 +5 -4
- package/scripts/auto-install.js +193 -0
- package/scripts/install-vscode.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ol-base-components",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "src/package/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"lint": "vue-cli-service lint",
|
|
17
17
|
"add": "node src/bin/add.js",
|
|
18
18
|
"vscode:build": "node scripts/build-vscode.js",
|
|
19
|
-
"vscode:install": "node scripts/install-vscode.js"
|
|
19
|
+
"vscode:install": "node scripts/install-vscode.js",
|
|
20
|
+
"postinstall": "node scripts/auto-install.js"
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
22
23
|
"commander": "^14.0.0",
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
"name": "vue-page-generator",
|
|
48
49
|
"displayName": "Vue 页面生成器",
|
|
49
50
|
"description": "配合ol-base-components组件使用, 无需联调的CRUD页面",
|
|
50
|
-
"version": "0.0.
|
|
51
|
+
"version": "0.0.4",
|
|
51
52
|
"engines": {
|
|
52
53
|
"vscode": "^1.60.0"
|
|
53
54
|
},
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
{
|
|
69
70
|
"command": "vue-generator.createPage",
|
|
70
71
|
"group": "navigation",
|
|
71
|
-
"when": "
|
|
72
|
+
"when": "resourceFolder"
|
|
72
73
|
}
|
|
73
74
|
]
|
|
74
75
|
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require("fs");
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const os = require("os");
|
|
5
|
+
|
|
6
|
+
// 检测 VSCode/Cursor 扩展目录
|
|
7
|
+
function getVSCodeExtensionsPath() {
|
|
8
|
+
const platform = os.platform();
|
|
9
|
+
const homeDir = os.homedir();
|
|
10
|
+
|
|
11
|
+
switch (platform) {
|
|
12
|
+
case "win32":
|
|
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
|
+
path.join(homeDir, "AppData", "Local", "Cursor", "User", "extensions"), // Cursor 本地扩展目录
|
|
18
|
+
path.join(homeDir, "AppData", "Roaming", "Code", "User", "extensions"), // VSCode 扩展目录
|
|
19
|
+
path.join(
|
|
20
|
+
homeDir,
|
|
21
|
+
"AppData",
|
|
22
|
+
"Local",
|
|
23
|
+
"Programs",
|
|
24
|
+
"Microsoft VS Code",
|
|
25
|
+
"resources",
|
|
26
|
+
"app",
|
|
27
|
+
"extensions"
|
|
28
|
+
), // VSCode 系统扩展目录
|
|
29
|
+
];
|
|
30
|
+
case "darwin":
|
|
31
|
+
return [
|
|
32
|
+
path.join(homeDir, ".vscode", "extensions"),
|
|
33
|
+
path.join(homeDir, ".cursor", "extensions"),
|
|
34
|
+
path.join(homeDir, "Library", "Application Support", "Cursor", "User", "extensions"),
|
|
35
|
+
path.join(homeDir, "Library", "Application Support", "Code", "User", "extensions"),
|
|
36
|
+
];
|
|
37
|
+
case "linux":
|
|
38
|
+
return [
|
|
39
|
+
path.join(homeDir, ".vscode", "extensions"),
|
|
40
|
+
path.join(homeDir, ".cursor", "extensions"),
|
|
41
|
+
path.join(homeDir, ".config", "Cursor", "User", "extensions"),
|
|
42
|
+
path.join(homeDir, ".config", "Code", "User", "extensions"),
|
|
43
|
+
];
|
|
44
|
+
default:
|
|
45
|
+
throw new Error("Unsupported platform");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// 自动安装 VSCode/Cursor 扩展
|
|
50
|
+
function autoInstallVSCodeExtension() {
|
|
51
|
+
try {
|
|
52
|
+
const extensionsPaths = getVSCodeExtensionsPath();
|
|
53
|
+
const extensionName = "vue-page-generator";
|
|
54
|
+
|
|
55
|
+
console.log("�� 正在查找扩展目录...");
|
|
56
|
+
extensionsPaths.forEach((path, index) => {
|
|
57
|
+
console.log(` ${index + 1}. ${path} ${fs.existsSync(path) ? "✅ 存在" : "❌ 不存在"}`);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
let installed = false;
|
|
61
|
+
|
|
62
|
+
for (const extensionsPath of extensionsPaths) {
|
|
63
|
+
if (fs.existsSync(extensionsPath)) {
|
|
64
|
+
console.log(`\n📁 使用扩展目录: ${extensionsPath}`);
|
|
65
|
+
|
|
66
|
+
const extensionDir = path.join(extensionsPath, extensionName);
|
|
67
|
+
|
|
68
|
+
// 删除旧的扩展目录(如果存在)
|
|
69
|
+
if (fs.existsSync(extensionDir)) {
|
|
70
|
+
console.log("🗑️ 删除旧的扩展目录...");
|
|
71
|
+
fs.rmSync(extensionDir, { recursive: true, force: true });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// 创建扩展目录
|
|
75
|
+
fs.mkdirSync(extensionDir, { recursive: true });
|
|
76
|
+
console.log("📁 创建扩展目录:", extensionDir);
|
|
77
|
+
|
|
78
|
+
// 复制扩展文件
|
|
79
|
+
const srcDir = path.join(__dirname, "../src/vscode");
|
|
80
|
+
const files = ["extension.js"];
|
|
81
|
+
|
|
82
|
+
files.forEach(file => {
|
|
83
|
+
const srcFile = path.join(srcDir, file);
|
|
84
|
+
const destFile = path.join(extensionDir, file);
|
|
85
|
+
|
|
86
|
+
if (fs.existsSync(srcFile)) {
|
|
87
|
+
fs.copyFileSync(srcFile, destFile);
|
|
88
|
+
console.log(`✅ 复制文件: ${file}`);
|
|
89
|
+
} else {
|
|
90
|
+
console.log(`❌ 源文件不存在: ${srcFile}`);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// 复制 webview 目录
|
|
95
|
+
const webviewSrcDir = path.join(srcDir, "webview");
|
|
96
|
+
const webviewDestDir = path.join(extensionDir, "webview");
|
|
97
|
+
|
|
98
|
+
if (fs.existsSync(webviewSrcDir)) {
|
|
99
|
+
if (!fs.existsSync(webviewDestDir)) {
|
|
100
|
+
fs.mkdirSync(webviewDestDir, { recursive: true });
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const panelFile = path.join(webviewSrcDir, "panel.js");
|
|
104
|
+
const panelDestFile = path.join(webviewDestDir, "panel.js");
|
|
105
|
+
|
|
106
|
+
if (fs.existsSync(panelFile)) {
|
|
107
|
+
fs.copyFileSync(panelFile, panelDestFile);
|
|
108
|
+
console.log("✅ 复制文件: webview/panel.js");
|
|
109
|
+
} else {
|
|
110
|
+
console.log("❌ 源文件不存在: webview/panel.js");
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
console.log("❌ webview 目录不存在:", webviewSrcDir);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// 创建 package.json
|
|
117
|
+
const packageJson = {
|
|
118
|
+
name: extensionName,
|
|
119
|
+
displayName: "Vue 页面生成器",
|
|
120
|
+
description: "从 Swagger API 生成 Vue CRUD 页面",
|
|
121
|
+
version: "0.0.4",
|
|
122
|
+
engines: {
|
|
123
|
+
vscode: "^1.60.0",
|
|
124
|
+
},
|
|
125
|
+
activationEvents: ["onCommand:vue-generator.createPage", "onCommand:vue-generator.test"],
|
|
126
|
+
main: "./extension.js",
|
|
127
|
+
contributes: {
|
|
128
|
+
commands: [
|
|
129
|
+
{
|
|
130
|
+
command: "vue-generator.createPage",
|
|
131
|
+
title: "生成 Vue 页面",
|
|
132
|
+
category: "Vue 生成器",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
command: "vue-generator.test",
|
|
136
|
+
title: "测试 Vue 生成器",
|
|
137
|
+
category: "Vue 生成器",
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
menus: {
|
|
141
|
+
"explorer/context": [
|
|
142
|
+
{
|
|
143
|
+
command: "vue-generator.createPage",
|
|
144
|
+
group: "navigation",
|
|
145
|
+
when: "resourceFolder",
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const packageJsonPath = path.join(extensionDir, "package.json");
|
|
153
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
154
|
+
console.log("✅ 创建文件: package.json");
|
|
155
|
+
|
|
156
|
+
console.log(`\n�� VSCode/Cursor 扩展自动安装成功!`);
|
|
157
|
+
console.log("请重启 Cursor 以激活扩展。");
|
|
158
|
+
console.log("安装位置:", extensionDir);
|
|
159
|
+
|
|
160
|
+
// 显示扩展目录内容
|
|
161
|
+
console.log("\n�� 扩展目录内容:");
|
|
162
|
+
const extensionFiles = fs.readdirSync(extensionDir);
|
|
163
|
+
extensionFiles.forEach(file => {
|
|
164
|
+
const filePath = path.join(extensionDir, file);
|
|
165
|
+
const stats = fs.statSync(filePath);
|
|
166
|
+
console.log(` - ${file} ${stats.isDirectory() ? "(目录)" : "(文件)"}`);
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
installed = true;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (!installed) {
|
|
175
|
+
console.log("\n❌ 未找到 VSCode 或 Cursor 扩展目录");
|
|
176
|
+
console.log("请确保已安装 VSCode 或 Cursor 编辑器。");
|
|
177
|
+
console.log("您可以稍后手动运行: npx install-vscode");
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
console.error("❌ 自动安装失败:", error.message);
|
|
181
|
+
console.error("错误详情:", error.stack);
|
|
182
|
+
console.log("您可以稍后手动运行: npx install-vscode");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// 如果直接运行此脚本
|
|
187
|
+
if (require.main === module) {
|
|
188
|
+
autoInstallVSCodeExtension();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
module.exports = {
|
|
192
|
+
autoInstallVSCodeExtension,
|
|
193
|
+
};
|