hiepdh-playable-toolkit 2.4.4 → 3.0.1
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/setup.js +28 -24
package/package.json
CHANGED
package/setup.js
CHANGED
|
@@ -123,7 +123,7 @@ function copyFolderRecursive(source, target) {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
function reviveProject(projectRoot, toolkitRoot, version = "3x") {
|
|
126
|
-
console.log(
|
|
126
|
+
console.log(` [Toolkit] Đang xử lý đồng bộ lockfile (v2 -> v3)...`);
|
|
127
127
|
|
|
128
128
|
const targetPkgPath = path.join(projectRoot, "package.json");
|
|
129
129
|
const targetLockPath = path.join(projectRoot, "package-lock.json");
|
|
@@ -131,7 +131,7 @@ function reviveProject(projectRoot, toolkitRoot, version = "3x") {
|
|
|
131
131
|
const sourceLockPath = path.join(templateDir, "package-lock.json");
|
|
132
132
|
|
|
133
133
|
if (!fs.existsSync(sourceLockPath)) {
|
|
134
|
-
console.error("
|
|
134
|
+
console.error(" Lỗi: Không tìm thấy file lock mẫu trong Toolkit!");
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -140,49 +140,53 @@ function reviveProject(projectRoot, toolkitRoot, version = "3x") {
|
|
|
140
140
|
const rootInfo = lockData.packages && lockData.packages[""];
|
|
141
141
|
|
|
142
142
|
if (!rootInfo) {
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
console.error(" Lỗi: File lock mẫu không có cấu trúc packages['']!");
|
|
144
|
+
return;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
// 2. Chuẩn bị package.json mới dựa trên "linh hồn" của file lock mẫu
|
|
148
|
-
let targetPkg = fs.existsSync(targetPkgPath)
|
|
149
|
-
|
|
148
|
+
let targetPkg = fs.existsSync(targetPkgPath)
|
|
149
|
+
? fs.readJsonSync(targetPkgPath)
|
|
150
|
+
: {};
|
|
151
|
+
|
|
150
152
|
// Hợp nhất dependencies: Phải có tên ở đây thì npm install mới không xóa file lock
|
|
151
|
-
targetPkg.dependencies = {
|
|
152
|
-
...rootInfo.dependencies,
|
|
153
|
-
...targetPkg.dependencies
|
|
153
|
+
targetPkg.dependencies = {
|
|
154
|
+
...rootInfo.dependencies,
|
|
155
|
+
...targetPkg.dependencies,
|
|
154
156
|
};
|
|
155
|
-
targetPkg.devDependencies = {
|
|
156
|
-
...rootInfo.devDependencies,
|
|
157
|
+
targetPkg.devDependencies = {
|
|
158
|
+
...rootInfo.devDependencies,
|
|
157
159
|
...targetPkg.devDependencies,
|
|
158
160
|
"adm-zip": "^0.5.10",
|
|
159
|
-
"fs-extra": "^11.1.0"
|
|
161
|
+
"fs-extra": "^11.1.0",
|
|
160
162
|
};
|
|
161
163
|
|
|
162
164
|
// 3. THỰC HIỆN GHI ĐÈ QUYẾT ĐỊNH
|
|
163
|
-
console.log("
|
|
165
|
+
console.log("Đang ghi đè package.json và package-lock.json...");
|
|
164
166
|
fs.writeJsonSync(targetPkgPath, targetPkg, { spaces: 2 });
|
|
165
|
-
|
|
167
|
+
|
|
166
168
|
// Xóa file v3 hiện tại của project test (nếu có) để tránh xung đột
|
|
167
169
|
if (fs.existsSync(targetLockPath)) {
|
|
168
|
-
|
|
170
|
+
fs.removeSync(targetLockPath);
|
|
169
171
|
}
|
|
170
172
|
// Copy file v2 từ Toolkit sang làm "gốc"
|
|
171
173
|
fs.copySync(sourceLockPath, targetLockPath);
|
|
172
174
|
|
|
173
175
|
// 4. CHẠY INSTALL VỚI FLAG CỨNG RẮN
|
|
174
176
|
try {
|
|
175
|
-
console.log(
|
|
176
|
-
|
|
177
|
+
console.log(
|
|
178
|
+
" Đang chạy npm install. NPM sẽ tự nâng cấp v2 lên v3 nếu cần..."
|
|
179
|
+
);
|
|
180
|
+
|
|
177
181
|
// --legacy-peer-deps giúp tránh các lỗi xung đột phiên bản quá khắt khe của npm 7+
|
|
178
|
-
execSync("npm install --legacy-peer-deps", {
|
|
179
|
-
|
|
180
|
-
|
|
182
|
+
execSync("npm install --legacy-peer-deps", {
|
|
183
|
+
cwd: projectRoot,
|
|
184
|
+
stdio: "inherit",
|
|
181
185
|
});
|
|
182
|
-
|
|
183
|
-
console.log("
|
|
186
|
+
|
|
187
|
+
console.log(" THÀNH CÔNG! node_modules đã được hồi sinh hoàn toàn.");
|
|
184
188
|
} catch (e) {
|
|
185
|
-
console.error("
|
|
186
|
-
console.log("
|
|
189
|
+
console.error(" Lỗi khi cài đặt: " + e.message);
|
|
190
|
+
console.log(" Thử lệnh thủ công: cd project-test && npm install");
|
|
187
191
|
}
|
|
188
192
|
}
|