create-pika-minigame 1.5.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.
Files changed (2) hide show
  1. package/bin/cli.js +40 -5
  2. 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
- // No additional scripts needed - fmt fix is automatic in Podfile
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} Run on iOS simulator
252
- ${colors.cyan}npm run android${colors.reset} Run on Android emulator
253
- ${colors.cyan}npm start${colors.reset} Start Metro bundler
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
  `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-pika-minigame",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "CLI to scaffold Pika mini-game projects (bare React Native 0.77)",
5
5
  "author": "Pika Team",
6
6
  "license": "MIT",