我为 ACE 编辑器编写了一个自定义模式
我的模式.js
ace.define('my-mode', [/* ... */], function(require, exports, module) { /* ... */ });
我尝试使用
索引.js
var editor = ace.edit('editor');
editor.getSession().setMode('my-mode');
我安装了 ACE 编辑器(ace-builds)和 requirejs with bower
鲍尔.json
{
"name": "my-project",
"dependencies": {
"ace-builds": "^1.2.3",
"requirejs": "^2.2.0"
}
}
和配置的要求
requirejs-config.js
require.config({
paths: {
ace: "bower_components/ace-builds/src-noconflict/ace"
}
});
我的页面看起来像这样
索引.html
<body>
<div id="editor"></div>
<script src="bower_components/requirejs/require.js"></script>
<script src="requirejs-config.js"></script>
<script src="bower_components/ace-builds/src-noconflict/ace.js"></script>
<script src="my-mode.js"></script>
<script src="index.js"></script>
</body>
可悲的是,电话
editor.getSession().setMode('my-mode');
导致错误
Failed to load resource: http://localhost:5555/bower_components/ace-builds/src-noconflict/mode-my-mode.js
the server responded with a status of 404 (Not Found)
如何配置 ace 和 requirejs 以便找到 my-mode?
我找到了解决方案。在使用 my-mode 之前(例如在索引.js的开头)调用
ace.config.setModuleUrl('my-mode', '/path/to/my-mode.js');