无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
Can not load Ace.js editor mode and themes (namespaces project & AMD require.js & grunt
我们有一个完全按名称命名的大型javascript应用程序。我们使用require.js加载所有内容(需要命名空间上的生命),然后使用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语句中包含主题和模式,但我已经尝试过了,虽然我可以获得诸如之类的主题对象
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.js中,或者它是否成功加载了依赖项,只是无法加载或无法将主题/模式路径映射到它们的加载方式。
有没有办法用配置来设置主题和模式的默认值?这可能会有所帮助。有人知道我缺了什么吗?
谢谢。
我使用的ace.js构建的文件夹/文件结构如下
/ace/ace.js
/ace/mode-javascript.js
/ace/theme-textmate.js
etc
etc
问题是,王牌期待着魔法之路("ce/theme/textmate")我需要的是要求获得对文件(真实文件)的正确引用,并在所有文件缩小并合并为一个文件后对ace("ce/theme/textmate")进行正确引用。
解决方案是
更改文件夹/文件名结构以模拟预期的内容。所以我在/ace目录下创建了一个名为mode的文件夹。我将mode-javascript.js重命名为javascript.js,并将其放在新的模式文件夹中。
我把这个文件添加到我项目中的define()调用中,这样它就会被认为需要添加到组合文件中。
define(['ace/ace','ace/mode/javascript'],function(ace,ace_mode){…
在此之后,我对ace_mode不做任何操作,但我需要requirejs看到它,以便将它添加到组合文件中。
在这之后,我使用魔术串,就像王牌网站对说的那样
editor.getSession().setMode("ace/mode/javascript");
我对主题也做了同样的事情。到目前为止,它似乎正在发挥作用。我有主题,语法突出显示,代码折叠等工作。
还有一件事要提。正如我所说,我们的项目是名称空间CXX,并且需要在该名称空间中生存。Ace在窗口上查找require或其自己的名称空间"Ace",这两个都不是我想要的,所以我删除了Ace文件底部的代码,该代码试图启动Ace本身并将其分配给全局变量。通过删除此代码,我的define调用能够像加载一个最合适的AMD模块一样加载Ace。主要地
- Angular js-返回一个包含类似
- php&js-将电子邮件添加到输入文本中
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 如何访问日期并将其插入数据库?节点.JS&MongoDB
- Javascript散列导航&外部js文件
- css&js文件在php中不起作用
- JS RegEx for date&名称规则
- Laravel&Dropzone.js文件请求
- HTML&JS-如何修改CSS类的属性
- 使用JS&HTML作品,JS&CSS没有'不总是
- 节点JS加载JS&ejb文件中的css文件
- d3.js&nvd3.js——如何设置y轴范围
- Node.js&两个请求之间的Express/Can上下文切换可以是同步代码
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- Knockout.js多个外部模板&多VM切换失败
- 如何不允许在使用PHP的自动完成表单中不在数据库中的值&JS
- 无法获取interact.js拖动&放弃交互以使用Boostrap元素
- Backbone.js&Handlebars.js来创建相对URL
- 同构JS应用程序中的环境变量:Webpackfind&代替
- Dexie.exists()方法不返回任何内容(Dexie.js&IndexedDB)