reactjs - 如何在React + Browserify环境中应用Codemirror模式

标签 reactjs browserify codemirror codemirror-modes

我正在开发一个基于此样板的应用程序:react-app-boilerplate

我正在使用react-codemirror module

我想将 javascript 模式应用于 codemirror,但在插入 http://codemirror.net/mode/javascript/javascript.js 中找到的外部脚本时出现“CodeMirror 未定义”错误

我不确定如何在此配置中将所有内容连接在一起,我尝试从 javascript.js 文件中的react-codemirror 中获取 CodeMirror 对象,但没有成功。

var InputCode = React.createClass({
  getInitialState () {
    return {
      code: '{ "message": "Some JSON input" }'
    };
  },
  updateCode (newCode) {
    this.setState({
      code: newCode
    });
  },
  render () {
    var options = {
      lineNumbers: true,
      extraKeys: {"Ctrl-Space": "autocomplete"},
      mode: {name: "javascript", json: true, globalVars: true},
      theme: "sublime-text-like",
      viewportMargin: Infinity
    };
    return <Codemirror value={this.state.code} onChange={this.updateCode} options={options} />;
  }
});

最佳答案

需要预先需要的所有 CodeMirror 模式和插件 - 当您需要它们时,它们会使用 CodeMirror.defineMode() 来配置自己,因此当 CodeMirror 尝试使用时会找到它们稍后再讲。

例如对于您正在使用的样板文件,在渲染您的应用程序之前,需要在其 main.js 模块中使用 JavaScript 模式:

require('codemirror/mode/javascript/javascript')

关于reactjs - 如何在React + Browserify环境中应用Codemirror模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784633/

相关文章:

reactjs - Serviceworker 且不能在模块外部使用 import 语句

javascript - Browserify require 返回一个空对象

google-analytics - Google 标签管理器自定义事件跟踪

javascript - Safari 中的 ReactDom 中缺少 "minLength"

javascript - react 事件未触发

http - 缺少可观察方法 RxJS 5.0.0-beta.0

javascript - Uncaught ReferenceError : CodeMirror is not defined

textarea - 比较两个不同 CodeMirror textarea 的变化

reactjs - 在没有 webpack-dev-server 的情况下使用 webpack HMR(热模块替换)

node.js - node_modules 打包失败(Webpack 或 Browserify)