我们有一个完全命名空间的大型 javascript 应用程序。我们使用 require.js 加载所有内容(require 存在于命名空间中)然后我们使用 grunt 编译 100+/- js 文件,包括库到一个缩小文件。
我能够加载 ace.js
define(['ace/ace'], function (ace) {....
我能够创建一个编辑器,例如
var editor = ace.edit("editor");
但是我不确定要加载模式和主题。当我尝试类似..
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
该请求尝试在 Web 根目录中查找文件。
mysite.com/theme-monokai.js
但是,这些文件需要与其余文件一起编译并放入一个大的缩小文件中。
我想我需要在我的定义语句中包含主题和模式,但是我已经尝试过了,虽然我可以得到一个主题对象,例如
define(['ace/mode-javascript'], function (mode_js) {
console.log('mode loaded just fine')
console.log(mode_js)
...
但是,我没有任何运气尝试将对象传递给 setTheme 和 setMode 函数。
editor.setTheme(ace_theme);
editor.getSession().setMode(mode_js);
所有这一切的最终结果是我有一个 ace 编辑器在工作,但没有突出显示或主题。行编号工作,标签工作。我不确定这些东西是否在主 ace.js 中,或者它是否成功加载了它的依赖项,只是无法加载或无法将主题/模式路径映射到它们的加载方式。
有没有办法通过配置设置主题和模式默认值?这可能会有所帮助。有谁知道我错过了什么?
谢谢。