2014-09-07 6 views
9

erfordern Hat jemand versucht, Code Mirror über Browserify zu verwenden?Wie Modus, Thema oder Addon Code Mirror in browserify

Ich finde nichts ist sichtbar, obwohl es bereits alle HTML-Tags generiert.

Der Code:

var CodeMirror = require('codemirror'); 
require('codemirror/mode/javascript/javascript.js'); 

    var editor = CodeMirror.fromTextArea(document.getElementById("code"), { 
    lineNumbers: true, 
    extraKeys: { 
     "Ctrl-Space": "autocomplete" 
    }, 
    mode: { 
     name: "javascript", 
     globalVars: true 
    } 
    }); 

Ich frage mich, wie ich sollte die js-Modus erfordern?

+0

Haben Sie überprüft diese Gabel aus, die freundlicher browserify werden sollte? [npmjs.org/code-mirror](https://www.npmjs.org/package/code-mirror) – Pippin

+1

Wie das Code-Mirror-Projekt in seinem eigenen Readme angibt: 'Verwenden Sie stattdessen codemirror, es unterstützt jetzt CommonJS-Umgebungen' –

Antwort

6

ich mit diesem Problem tatsächlich dealed durch erfordern() verwendet für alle Abhängigkeiten der Demonstration von html5complete mode demo wie folgt aus:

// require('codemirror/addon/hint/show-hint'); 
// require('codemirror/addon/hint/xml-hint'); 
// require('codemirror/addon/hint/html-hint'); 

require('codemirror/mode/xml/xml'); 
require('codemirror/mode/javascript/javascript'); 
require('codemirror/mode/css/css'); 
require('codemirror/mode/htmlmixed/htmlmixed'); 

var CodeMirror = require('codemirror/lib/codemirror'); 

var editor = CodeMirror.fromTextArea(textareaElement, { 
    mode: 'text/html', 
    lineWrapping: true, 
    extraKeys: { 
    'Ctrl-Space': 'autocomplete' 
    }, 
    lineNumbers: true, 
    theme: 'monokai' 
}); 

In meiner .Weniger Dateien importiert ich die CSS wie folgt aus:

@import (inline) "./../../node_modules/codemirror/lib/codemirror.css"; 
@import (inline) "./../../node_modules/codemirror/theme/monokai.css"; 
// @import (inline) "./../../node_modules/codemirror/addon/hint/show-hint.css"; 

Ich habe nicht wirklich auf die Qualität dieses Tricks geachtet.

2

Hier ist, was für mich funktioniert. Mit Import statt erfordern, aber gleichen Kern:

import 'codemirror/theme/3024-night.css' 
 

 
const options = { 
 
     lineNumbers: true, 
 
     readOnly: false, 
 
     mode: 'htmlmixed', 
 
     theme:'3024-night' 
 
}; 
 

 
... 
 

 

 
<Codemirror ref="editor" value={this.props.value} onChange={this.props.updateCode} options={options}/>