我想将ACE Editor与桌面应用程序捆绑在一起,并在WebView中进行渲染。 Ace从file:///
协议运行。有没有办法单独托管模式文件ace.js
?例如,ace.js
将位于应用程序包/Application/MyApp.app/...
内,但模式文件位于~/Library/Application Support/MyApp/ace/modes
。
我从测试项目开始并拥有以下代码
<script type="text/javascript">
var require = {
baseUrl: window.location.protocol + "//" + window.location.host
+ window.location.pathname.split("/").slice(0, -1).join("/"),
paths: {
"ace/mode": "/Users/user/ace-build",
}
};
</script>
<script type="text/javascript" src="require.js"></script>
<script type="text/javascript" src="ace/ace.js"></script>
<script type="text/javascript">
require(["ace/ace"], function(ace){
var editor = ace.edit("editor-container");
editor.getSession().setUseWorker(false);
editor.setTheme("ace/theme/xcode");
editor.getSession().setMode("ace/mode/javascript");
});
</script>
我希望模块ace/mode/javascript
将从/Users/user/ace-build/javascript
加载,但它会从ace/mode-javascript.js
加载。如何从不同的位置加载模式?
答案 0 :(得分:2)
使用
require("ace/config").set("modePath", require.toUrl("ace/mode"))
如果ext-*
和其他文件位于同一文件夹中,则可以.set("basePath", ..)
代替