create-pika-minigame 1.4.0 → 1.6.0
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/bin/cli.js +40 -5
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -197,10 +197,16 @@ ${colors.reset}
|
|
|
197
197
|
const templatesDir = path.join(__dirname, '..', 'templates');
|
|
198
198
|
const srcTemplateDir = path.join(templatesDir, 'src');
|
|
199
199
|
const devTemplateDir = path.join(templatesDir, 'dev');
|
|
200
|
+
const scriptsTemplateDir = path.join(templatesDir, 'scripts');
|
|
201
|
+
|
|
202
|
+
// Convert project name to snake_case for Module Federation scope
|
|
203
|
+
const snakeName = projectName.replace(/-/g, '_').toLowerCase();
|
|
200
204
|
|
|
201
205
|
const replacements = {
|
|
202
206
|
PROJECT_NAME: projectName,
|
|
207
|
+
PROJECT_NAME_KEBAB: projectName.toLowerCase(),
|
|
203
208
|
PROJECT_NAME_PASCAL: pascalName,
|
|
209
|
+
PROJECT_NAME_SNAKE: snakeName,
|
|
204
210
|
};
|
|
205
211
|
|
|
206
212
|
// Copy src folder
|
|
@@ -213,11 +219,21 @@ ${colors.reset}
|
|
|
213
219
|
copyDir(devTemplateDir, path.join(targetDir, 'dev'), replacements);
|
|
214
220
|
}
|
|
215
221
|
|
|
222
|
+
// Copy scripts folder
|
|
223
|
+
if (fs.existsSync(scriptsTemplateDir)) {
|
|
224
|
+
copyDir(scriptsTemplateDir, path.join(targetDir, 'scripts'), replacements);
|
|
225
|
+
// Make deploy script executable
|
|
226
|
+
const deployScript = path.join(targetDir, 'scripts', 'deploy-vercel.sh');
|
|
227
|
+
if (fs.existsSync(deployScript)) {
|
|
228
|
+
fs.chmodSync(deployScript, '755');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
216
232
|
// Step 3: Patch Podfile for fmt compatibility
|
|
217
233
|
log.step(3, 'Patching for Xcode compatibility...');
|
|
218
234
|
patchPodfile(targetDir);
|
|
219
235
|
|
|
220
|
-
// Step 4: Update package.json with additional dependencies
|
|
236
|
+
// Step 4: Update package.json with additional dependencies and scripts
|
|
221
237
|
log.step(4, 'Updating package.json...');
|
|
222
238
|
|
|
223
239
|
const pkgPath = path.join(targetDir, 'package.json');
|
|
@@ -230,7 +246,23 @@ ${colors.reset}
|
|
|
230
246
|
'react-native-safe-area-context': '4.12.0',
|
|
231
247
|
};
|
|
232
248
|
|
|
233
|
-
|
|
249
|
+
pkg.devDependencies = {
|
|
250
|
+
...pkg.devDependencies,
|
|
251
|
+
'@callstack/repack': '^5.0.0',
|
|
252
|
+
'serve': '^14.2.0',
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
// Add build and deploy scripts
|
|
256
|
+
pkg.scripts = {
|
|
257
|
+
...pkg.scripts,
|
|
258
|
+
'build:ios': `npx react-native webpack-bundle --platform ios --entry-file index.js --dev false --bundle-output build/outputs/ios/remotes/${snakeName}.container.js.bundle`,
|
|
259
|
+
'build:android': `npx react-native webpack-bundle --platform android --entry-file index.js --dev false --bundle-output build/outputs/android/remotes/${snakeName}.container.js.bundle`,
|
|
260
|
+
'build:all': 'npm run build:ios && npm run build:android',
|
|
261
|
+
'serve:ios': 'npx serve build/outputs/ios/remotes -l 9000 --cors',
|
|
262
|
+
'serve:android': 'npx serve build/outputs/android/remotes -l 9000 --cors',
|
|
263
|
+
'deploy': './scripts/deploy-vercel.sh',
|
|
264
|
+
'deploy:prod': './scripts/deploy-vercel.sh --prod',
|
|
265
|
+
};
|
|
234
266
|
|
|
235
267
|
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
|
|
236
268
|
|
|
@@ -248,14 +280,17 @@ ${colors.bright}Next steps:${colors.reset}
|
|
|
248
280
|
|
|
249
281
|
${colors.bright}Available commands:${colors.reset}
|
|
250
282
|
|
|
251
|
-
${colors.cyan}npm run ios${colors.reset}
|
|
252
|
-
${colors.cyan}npm run android${colors.reset}
|
|
253
|
-
${colors.cyan}npm start${colors.reset}
|
|
283
|
+
${colors.cyan}npm run ios${colors.reset} Run on iOS simulator
|
|
284
|
+
${colors.cyan}npm run android${colors.reset} Run on Android emulator
|
|
285
|
+
${colors.cyan}npm start${colors.reset} Start Metro bundler
|
|
286
|
+
${colors.cyan}npm run deploy${colors.reset} Deploy to Vercel (preview)
|
|
287
|
+
${colors.cyan}npm run deploy:prod${colors.reset} Deploy to Vercel (production)
|
|
254
288
|
|
|
255
289
|
${colors.bright}Project structure:${colors.reset}
|
|
256
290
|
|
|
257
291
|
src/ Game source code (edit this!)
|
|
258
292
|
dev/ Development helpers (MockHost)
|
|
293
|
+
scripts/ Deploy scripts
|
|
259
294
|
|
|
260
295
|
Happy coding! ${colors.yellow}🎮${colors.reset}
|
|
261
296
|
`);
|