{"id":25090,"library":"codeplay-common","title":"CodePlay Common","description":"CodePlay Common is a set of build scripts and shared configuration files for Capacitor-based mobile apps. Version 3.2.19 simplifies common tasks like splash screen animation, automatic AdMob ID extraction from capacitor.config.json, and generating build variants for multiple app stores. It installs In-App Purchase plugins conditionally based on the target store. The package is intended to reduce boilerplate and manual setup by 40% for multi-app projects. It integrates with Ionic and Capacitor workflows, targeting developers who maintain multiple apps with shared build logic. The package is actively maintained on GitHub by merbin2012, though full source requires donation.","status":"active","version":"3.2.19","language":"javascript","source_language":"en","source_url":"https://github.com/merbin2012/codeplay-common","tags":["javascript"],"install":[{"cmd":"npm install codeplay-common","lang":"bash","label":"npm"},{"cmd":"yarn add codeplay-common","lang":"bash","label":"yarn"},{"cmd":"pnpm add codeplay-common","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Runtime dependency for Capacitor APIs used in build scripts and app configuration","package":"@capacitor/core","optional":false},{"reason":"Used for generating splash screens and icons","package":"cordova-res","optional":false},{"reason":"Plugin for in-app review requests, conditional on store","package":"cordova-plugin-request-review","optional":true},{"reason":"Plugin for in-app purchases, installed conditionally based on store","package":"cordova-plugin-iap","optional":true}],"imports":[{"note":"ESM-only package; CommonJS require not supported","wrong":"const codeplayCommon = require('codeplay-common')","symbol":"default","correct":"import codeplayCommon from 'codeplay-common'"},{"note":"Named export, not default","wrong":"import CodePlayBuild from 'codeplay-common'","symbol":"CodePlayBuild","correct":"import { CodePlayBuild } from 'codeplay-common'"},{"note":"Use type import for TypeScript type declarations","wrong":"import { SplashConfig } from 'codeplay-common'","symbol":"SplashConfig","correct":"import type { SplashConfig } from 'codeplay-common'"}],"quickstart":{"code":"import codeplayBuild from 'codeplay-common';\n\nconst config = {\n  appName: 'MyApp',\n  version: '1.0.0',\n  stores: ['google', 'apple'],\n  splash: {\n    backgroundColor: '#ffffff',\n    animation: 'fade'\n  }\n};\n\ncodeplayBuild(config)\n  .then(() => console.log('Build completed'))\n  .catch(err => console.error(err));","lang":"typescript","description":"Demonstrates importing the default export and running a build with common configuration for splash screen and multi-store output."},"warnings":[{"fix":"Use 'import codeplayCommon from 'codeplay-common'' instead of 'import ... from 'codeplay-common/dist/...'","message":"Do not import from subpaths; only main entry point is supported.","severity":"gotcha","affected_versions":">=3.0"},{"fix":"Replace IAP plugin with @capacitor/inapppurchases and update build config.","message":"The 'cordova-plugin-iap' dependency is deprecated; migrate to @capacitor/inapppurchases.","severity":"deprecated","affected_versions":">=3.0"},{"fix":"Use 'stores: ['google', 'apple']' instead of 'googlePlay: true, appleStore: true'","message":"Version 3.0 changed the configuration structure — old 'googlePlay' and 'appleStore' keys are now merged into 'stores' array.","severity":"breaking","affected_versions":">=3.0"},{"fix":"Ensure capacitor.config.json is present and contains valid JSON.","message":"The package requires capacitor.config.json to exist in the project root; missing file causes silent failure.","severity":"gotcha","affected_versions":">=1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'npm install codeplay-common' and ensure project is configured for ESM (type: module in package.json or use .mjs extension)","cause":"Package not installed or ESM import used in CommonJS project","error":"Error: Cannot find module 'codeplay-common'"},{"fix":"Use 'import codeplayBuild from 'codeplay-common'' for default, or 'import { CodePlayBuild } from 'codeplay-common'' if using named export","cause":"Incorrect import — default import used when named import was expected","error":"TypeError: codeplayCommon is not a function"},{"fix":"Add 'type': 'module' to package.json or transpile with Babel/TypeScript","cause":"ESM syntax used without proper configuration or transpilation","error":"SyntaxError: Unexpected token 'export'"},{"fix":"Create capacitor.config.json with at least {} in the project root directory","cause":"Missing configuration file in project root","error":"Error: Could not find capacitor.config.json"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}