Development workflow for TypeScript-based Minecraft Bedrock Edition content creation tools (React web app + NodeJS CLI)
A comprehensive development workflow for contributing to the Minecraft Bedrock Edition creator tools repository - a TypeScript project that cross-compiles to both a React web application and NodeJS command line tool for editing Minecraft creative projects.
Before starting development, set up the environment following these steps:
1. **Build sample content**:
- Navigate to `samplecontent/addon`
- Run `npm ci`
- Run `npx gulp package`
2. **Prepare developer environment**:
- Navigate to `app/` folder
- Run `npm ci`
- Run `npm run preparedevenv`
This will populate:
- `app/public/res/samples` with sample packs, worlds, and addons
- `app/public/res/latest/van` with vanilla Minecraft content
1. **Edit source code** in `app/src/` directory
2. **Rebuild after changes**:
```bash
cd app/
npm run corebuild
```
This rebuilds both the NodeJS CLI tool and the website.
3. **Test the CLI tool**:
```bash
npx mct validate -i <path-to-content-folder>
```
Use this frequently to validate content and verify expected results.
4. **Run tests**:
```bash
npm test
```
**Main working directory**: `app/`
| Directory | Purpose |
|-----------|---------|
| `app/src/` | Main application source code |
| `app/public/` | Data files and static assets for web app |
| `app/jsnode/` | Files packaged into NodeJS CLI tool |
| `app/build/` | Website build output |
| `app/out/` | Electron build output |
| `app/toolbuild/` | JSNode and VSCode build output |
| `app/test/` | Integration tests (scenarios vs results) |
| `app/debugoutput/` | Temporary debug files (ignore in PRs) |
| `app/site/` | mctools.dev hosting modifications |
| `app/reslist/` | Build-time resource inclusion metadata |
| `samplecontent/` | Sample Minecraft content for testing |
**Important**: Do not edit generated files in:
These are generated from `app/src/minecraft/` and should not be modified directly.
1. **Follow TypeScript best practices** and idiomatic patterns
2. **Maintain existing code structure** and organization
3. **Write unit tests** for all new functionality
4. **Document architectural decisions** in the `docs/` folder with titles indicating feature name and last revision date
5. **Update this file** when making changes to build or test processes
6. **Update build files** (package.json, gulpfile.js) to simplify future builds
7. **Keep documentation current** to ensure accurate context for future development
When streamlining build or test processes:
This ensures the codebase remains accessible and maintainable for all contributors.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/minecraft-bedrock-creator-tools-development/raw