Imported from XaveScor/smartbundle (
skills/SKILL.md). Install upstream withnpx skills add XaveScor/smartbundle --skill skills. Copyright stays with the author.
SmartBundle
Use this skill when adding SmartBundle to a package or repairing its SmartBundle setup.
- Detect the project's package manager and install
smartbundleas a development dependency. - Add a package script:
"build": "smartbundle build". - Configure only the intended
exports,files, andbinfields that SmartBundle cannot infer. - Install any optional toolchain the project actually uses, following the rules below.
- Run the build package script.
- If it fails, fix the configuration, dependency, or source file named by the diagnostic and run the build again.
- Repeat until the build exits with code 0. A successful build is the installation check; do not try to predict every SmartBundle validation in advance.
Project decisions
exportsdefines the package's intended code entrypoints and raw public subpaths.filesdefines non-public static assets that must be copied into the output.binmaps public CLI names to source executable entrypoints.
SmartBundle validates the shape of these fields and whether their paths are allowed and exist. It cannot infer the package's intended public API or desired asset set. See docs/package-json.md for details.
Optional toolchain
- TypeScript: install a local development dependency in the range
>=5.0.0 <8.0.0. With TypeScript 7, also install@typescript/typescript6. Follow concrete build diagnostics fortsconfig.json; seedocs/ts-guide.mdwhen more context is needed. - Babel: only when the project has a Babel configuration, install
@babel/core@^7.26.0 || ^8.0.0as a development dependency. The project chooses its own configuration, presets, and plugins. - React: install
reactindependencies,optionalDependencies, orpeerDependencies, not only indevDependencies, because SmartBundle uses that version to select the classic or automatic JSX transform. For TypeScript projects, add@types/reactas a development dependency when needed. Seedocs/react.mdfor details. - Vitest: install
vitest@^3.0.0orvitest@^4.0.0as a development dependency. Invitest.config.ts, combineawait defineViteConfig()from SmartBundle with the project'sdefineConfig()by using Vitest'smergeConfig().
