Al ejecutar editor.setTheme('libs/ace/theme/twilight')
buscará theme-twilight.js
en la carpeta raíz.
Intenté mirar la documentación sin encontrar ninguna ayuda.
Además, los trabajadores, ¿son necesarios para algún idioma o hay una opción para desactivarlos?
Una vez más, no encontré ninguna solución a esto en los documentos.
Después de buscar un buen rato encontré estos dos:
ace.config.set('basePath', '/libs/ace');
editor.getSession().setUseWorker(false);
Eres un héroe, necesitas esa propiedad basePath y has estado buscando durante días. Gracias.
Para referencia futura, este es un ejemplo completo (modelado a partir del ejemplo de incrustación en el sitio web oficial de ace) para tener ace.js en otro lugar (lo tenía concatenado en libs.min.js):
<script src="libs.min.js" type="text/javascript" charset="utf-8"></script>
<script>
ace.config.set('basePath', '/ace-builds/src-noconflict');
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
</script>
Para cualquiera que tenga dificultades para que esto funcione en entornos de producción, descubrí que no solo configurar basePath
, sino también configurar modePath
y themePath
veces es necesario para los modos de carga y temas:
ace.config.set('basePath', '/ace-builds/src-noconflict');
ace.config.set('modePath', '/ace-builds/src-noconflict');
ace.config.set('themePath', '/ace-builds/src-noconflict');
@efatsi ¿Puedes compartir conmigo cómo podemos hacerlo? Proyecto angular 6 con https://github.com/fxmontigny/ng2-ace-editor . También me enfrento al mismo problema.
Lo siento @PrabakarKaruppasamy , no tengo ninguna experiencia angular. ¡buena suerte!
@PrabakarKaruppasamy , ¿ https://stackoverflow.com/questions/60177855/theme-and-mode-path-infer-issue-with-ace-js-and-angular
Comentario más útil
Después de buscar un buen rato encontré estos dos:
ace.config.set('basePath', '/libs/ace');
editor.getSession().setUseWorker(false);