← Back to codemirror/CodeMirror

How to Deploy & Use codemirror/CodeMirror

CodeMirror 5 Deployment and Usage Guide

Prerequisites

  • Node.js: Version 6 or higher for building the project
  • Browser: Modern web browser for running CodeMirror (Chrome, Firefox, Safari, Edge)
  • Optional: diff_match_patch library for merge addon functionality

Installation

Using npm (Recommended)

npm install codemirror@5

Manual Download

Download the latest version from the official website:

wget https://codemirror.net/5/codemirror.zip
# or
curl -O https://codemirror.net/5/codemirror.zip

Building from Source

# Clone the repository
git clone https://github.com/codemirror/codemirror5.git
cd codemirror5

# Install dependencies
npm install

# Build the project
npm run build

Configuration

CodeMirror is highly configurable through initialization options. Key configuration options include:

// Basic configuration
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
  mode: "javascript",           // Language mode
  theme: "default",             // Theme
  lineNumbers: true,            // Show line numbers
  indentUnit: 2,                 // Indentation size
  smartIndent: true,             // Smart indentation
  tabSize: 4,                    // Tab size
  readOnly: false,               // Read-only mode
  lineWrapping: false,           // Word wrapping
  gutters: ["CodeMirror-linenumbers", "breakpoints"], // Custom gutters
  extraKeys: {                   // Custom key bindings
    "Ctrl-Space": "autocomplete"
  }
});

Language Modes

CodeMirror supports over 100 language modes. Load the specific mode you need:

<script src="codemirror.js"></script>
<script src="mode/javascript/javascript.js"></script>

Addons

Load additional functionality through addons:

<script src="addon/edit/matchbrackets.js"></script>
<script src="addon/display/rulers.js"></script>

Build & Run

Development

# Clone and install
git clone https://github.com/codemirror/codemirror5.git
cd codemirror5
npm install

# Run locally
open index.html

Production

# Build for production
npm run build

# Copy built files to your web server
cp -r lib/ build/ /path/to/your/webroot/

Testing

npm test

Deployment

CodeMirror is a client-side JavaScript library, making it suitable for various deployment scenarios:

Static Hosting (Recommended)

Deploy to any static hosting service:

  • GitHub Pages: Perfect for documentation sites
  • Netlify: Excellent for static sites with build processes
  • Vercel: Great for frontend applications
  • AWS S3 + CloudFront: For enterprise-level static hosting

Integration with Web Frameworks

React/Vue/Angular: Include CodeMirror as a component or use wrapper libraries

Node.js/Express: Serve the static files alongside your backend

app.use(express.static('path/to/codemirror'));

CDN Deployment

Use a CDN for faster loading:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.2/codemirror.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.2/codemirror.min.js"></script>

Troubleshooting

Common Issues and Solutions

1. Editor not loading

# Check browser console for errors
# Ensure all required scripts are loaded in correct order
# Verify paths to CodeMirror files

2. Syntax highlighting not working

// Ensure the correct mode is loaded
// Check if mode file is properly referenced
// Verify mode name matches the file name

3. Performance issues with large files

// Enable line wrapping: lineWrapping: true
// Disable line numbers if not needed: lineNumbers: false
// Use simpler theme
// Consider CodeMirror 6 for better performance

4. Mobile compatibility issues

// CodeMirror 5 has limited mobile support
// Consider upgrading to CodeMirror 6 for better mobile experience
// Add touch event handlers if needed

5. Build failures

# Ensure Node.js version >= 6
npm install --force  # Force reinstall dependencies
rm -rf node_modules && npm install  # Clean reinstall

6. Addon conflicts

// Load addons in correct order
// Check for conflicting key bindings
// Use addon-specific configuration options

Migration Notes

From CodeMirror 5 to 6:

  • CodeMirror 6 is more actively maintained
  • Better mobile and accessibility support
  • Improved API design
  • Consider migration for new projects

From older CodeMirror 5 versions:

  • Check changelog for breaking changes
  • Update mode and addon references
  • Test thoroughly after upgrades

Support Resources