-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Dev Setup: General Information
We have a Docker image for CodeCombat, and it is easy to get started by using docker-compose
. We recommend that you use Docker instead of the local installations, because it is easier and faster (unless your internet speed is very slow).
Our installation guides are split into per-OS guides which will give you step-by-step instructions on how to get your development environment set up. We recommend following the Docker Guide, but you can run CodeCombat locally on your machine if you prefer that.
This is the general overview for what you need in order to set up the development environment. For more specific instructions with recommended paths to success, see the installation guides listed above.
- Install Node.js 14, npm 6.14, and Git
-
git clone
this repository. -
npm install --also=dev
in the repository's root directory.
After installation, you can run your development environment as a proxy to CodeCombat's production servers. Enter the following commands in separate terminals:
-
npm run proxy
(routes all server calls to CodeCombat's production servers) -
npm run webpack -- --watch
(compiles app files to public folder continuously, refreshing the browser window on changes)
If you don't need webpack to restart on changes or build files, you can simply run npm run proxy
instead.
There's a list of dev setup issues and workarounds here. If you have a problem and we figure out how to get around it, please help by updating this page.
You don't need any particular tools or editors to work with CodeCombat. We mostly use Visual Studio Code and Webstorm to write our code in. Most of us use Mac, but we are also doing a little on Windows with WSL2, and Linux is used for our servers.
Whichever editor you use, be sure to disable removing trailing whitespace from files, at least for pug files. Sometimes (although rarely) these have significant whitespace.
If Webpack is running and you make code changes, Webpack will reload the page automatically. So open the page you are working on in your browser, make changes in your editor, save, and the page will refresh so you can see the changes. Try to make whatever you're working on be the first thing you see when you open the page, so you don't have to lose focus on your editor while iterating.
CodeCombat | Home | Blog | Forum | Teachers | Legal | Contribute
- Home
- Archmage Home
- Artisan Home
- Diplomat Home
- Archmage General
- Mission statement
- Coco Models
- Coding Guidelines
- Cookbook
- File system
- JSON Schema
- Technical overview
- Testing
- Third party software and services
- Artisan General
- Building A Level
- Coding Guidelines for Artisans
- Editing Thang Components
- Important Artisan Concepts
- Keyboard Shortcuts
- Debugging
- Artisan How-To Index
- Diplomat General
- i18n
- i18n Glossary nb
- i18n Glossary ru
- i18n Glossary es-419
- Dev Setup
- Dev Setup: Linux
- Dev Setup: Windows
- Dev Setup: Mac
- Dev Setup: Vagrant
- Dev Setup: Issues
- Game Engine
- Component
- Multiplayer
- Surface
- System
- Thang
- Thang Component System
- Tome
- World
- Artisan Tabs
- Components And Systems
- Scripts
- Settings
- Thangs
- Other
- Aether
- Client models
- Developer organization
- Educational Standards
- Events, subscriptions, shortcuts
- Chat Room
- Chat Room Rules
- Permissions
- Project Ideas List
- Treema
- Versioning
- Views