En caso de que experimentes problemas mientras usas Hexo, aquí encontrarás una lista de soluciones para las incidencias más comunes. Si esta página no resuelva tu problema, trata de buscar en GitHub o en nuestro Google Group.
Errores de análisis sintáctico de YAML
JS-YAML: incomplete explicit mapping pair; a key node is missed at line 18, column 29: |
Encierra la cadena de texto entre comillas dobles si contiene dos puntos (:
).
JS-YAML: bad indentation of a mapping entry at line 18, column 31: |
Asegúrate de incluir sangría con espacios e incluir un espacio después de :
.
Puedes consultar las especificaciones de YAML para más detalles.
EMFILE Error
Error: EMFILE, too many open files |
Aunque Node.js tiene E/S no bloqueante, el máximo número de E/S síncrona está limitada por el sistema. Puede surgir un error EMFILE cuando se intenta generar una gran cantidad de ficheros. Puedes ejecutar el siguiente comando para aumentar este límite en las operaciones E/S síncronas.
$ ulimit -n 10000 |
Error: cannot modify limit
En caso de encontrar este error:
$ ulimit -n 10000 |
Significa que alguna configuración general está impidiendo aumentar ulimit
a cierto límite.
Entonces, para saltarse este límite:
- Incluye la siguiente línea en “/etc/security/limits.conf”:
* - nofile 10000 |
- El ajuste superior puede no funcionar en algunos casos, asegúrate “/etc/pam.d/login” y “/etc/pam.d/lightdm” contienen la siguiente línea. (Ignora este paso si esos ficheros no existen)
session required pam_limits.so |
- Si te encuentras en una distribución basada en systemd, systemd puede sobreescribir “limits.conf”. Para establecer el límite en systemd, incluye la próxima línea en “/etc/systemd/system.conf” y “/etc/systemd/user.conf”:
DefaultLimitNOFILE=10000 |
- Reinicio
Proceso sin memoria suficiente
Cuando encuentras este error durante la generación:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory |
Aumenta la memoria del heap cambiando la primera línea de hexo-cli
(ejecuta which hexo
para buscar el fichero).
#!/usr/bin/env node --max_old_space_size=8192 |
Out of memory while generating a huge blog · Issue #1735 · hexojs/hexo
Problemas de despliegue con Git
RPC failed
error: RPC failed; result=22, HTTP code = 403 |
Asegúrate que has configurado git en tu ordenador correctamente o trata de usar la URL HTTPS del repositorio.
Error: ENOENT: no such file or directory
Si obtienes un error como Error: ENOENT: no such file or directory
es debido a mezclar mayúsculas y minúsculas en tus etiquetas, categorías, o ficheros. Git no puede automáticamente combinar este cambio, así que rompe la ramificación automática.
Para solucionar esto, intenta
- Comprueba todos los caracteres de las etiquetas y categorías y asegúrate de que son todas del mismo tipo (mayúsculas o minúsculas).
- Commit
- Limpia y genera:
./node_modules/.bin/hexo clean && ./node_modules/.bin/hexo generate
- Copia manualmente el directorio al escritorio
- Cambia desde la rama principal a la rama de despliegue localmente
- Copia los contenidos del directorio público de tu escritorio en la rama de despliegue
- Commit. Deberías ver cualesquiera conflictos de combinación que puedes resolver manualmente.
- Cambia de nuevo a la rama principal y despliega normalmente:
./node_modules/.bin/hexo deploy
Problemas de servidor
Error: listen EADDRINUSE |
Puede que hayas empezado dos servidores Hexo al mismo tiempo o podría ser que otra aplicación esté usando el mismo puerto. Intenta modificar el ajuste de port
o inicia el servidor Hexo con -p
.
$ hexo server -p 5000 |
Problemas de instalación de complementos
npm ERR! node-waf configure build |
Este error puede ocurrir cuando intentas instalar un complemento escrito en C, C++ u otro lenguaje distinto a JavaScript. Asegúrate que tienes instalado el compilador correcto en tu ordenador.
Error con DTrace (Mac OS X)
{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' } |
La instalación de DTrace puede estar fallando, ejecuta esto:
$ npm install hexo --no-optional |
Consulta #1326
Itera el modelo de datos entre Jade o Swig
Hexo usa Warehouse para su modelo de datos. No es un array, así que puede debas transformar objetos en iterables.
{% for post in site.posts.toArray() %} |
La información no se actualiza
Algunos datos no pueden ser actualizados, o los nuevos ficheros generados son idénticos a los de la última versión. Limpia la caché e inténtalo de nuevo.
$ hexo clean |
Ningún comando se ejecuta
Cuando no puedes ejecutar ningún comando excepto help
, init
y version
y obtienes el contenido de hexo help
, puede ser debido a que falta hexo
en package.json
:
{ |
Escapado de contenido
Hexo usa Nunjucks para renderizar artículos (Swig se usaba en versiones más antiguas, que comparte una sintaxis similar). El contenido encerrado con {{ }}
o {% %}
será analizado y puede generar problemas. Se puede saltar el análisis de sintaxis encerrándolos con el complemento de etiquetas raw
un acento grave `{{ }}`
o triple. De forma alternativa, las etiquetas Nunjucks pueden deshabilitarse a través del ajuste de renderizado (en caso de estar permitido), API o en el frontispicio.
{% raw %} |
``` |
ENOSPC Error (Linux)
En ciertas ocasiones, ejecutar el comando $ hexo server
retorna un error:
Error: watch ENOSPC ... |
Puede ser solucionado ejecutando $ npm dedupe
o, si eso no ayuda, intenta lo siguiente en la consola de Linux:
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p |
Esto aumentará el límite de ficheros que puedes vigilar.
EMPERM Error (Windows Subsystem for Linux)
Cuando ejecutas $ hexo server
en un entorno BashOnWindows, retorna el siguiente error:
Error: watch /path/to/hexo/theme/ EMPERM |
Desafortunadamente, WSL no permite vigilantes del sistema de archivos. Por tanto, la característica de actualización en vivo del servidor de hexo no está disponible. Puedes ejecutar el servidor desde un entorno WSL generando primero los ficheros y luego corriendo el servidor en modo estático.
$ hexo generate |
Esto es una incidencia en BashOnWindows conocida, y el 15 de agosto de 2016, el equipo de Windows indicó que estaba trabajando en ella. Puedes consultar las actualizaciones sobre el progreso y solicitar que la prioriticen en página de sugerencias de incidencias de UserVoice.
Error de renderizado de plantilla
En ocasiones, cuando se ejecuta el comando $ hexo generate
se devuelve el siguiente error:
FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html |
Posibles motivos:
Hay algunas palabras irreconocibles en tu fichero, p. ej. caracteres de longitud cero.
Uso incorrecto o limitación del complemento de etiquetas.
- El estilo de bloque del complemento de etiquetas con contenido no cerrado de forma incorrecta
{% endplugin_name %}
# Incorrect
{% codeblock %}
fn()
{% codeblock %}
# Incorrect
{% codeblock %}
fn()
# Correct
{% codeblock %}
fn()
{% endcodeblock %}- Tener sintaxis del tipo Nunjucks dentro de un complemento de etiqueta, p. ej.
{#
. Una forma de evitar este error para este ejemplo es usar el triplete acento grave. La sección transliteración de contenidos incluye más detalles.
{% codeblock lang:bash %}
Size of array is ${#ARRAY}
{% endcodeblock %}- El estilo de bloque del complemento de etiquetas con contenido no cerrado de forma incorrecta
YAMLException (Issue #4917)
Actualizar a hexo^6.1.0
desde una versión anterior, puede ocasionr el siguiente error cuando se ejecuta $ hexo generate
:
YAMLException: Specified list of YAML types (or a single Type object) contains a non-Type object. |
Esto puede estar ocasionado por una dependencia incorrecta (p. ej. js-yaml
) que no puede ser resuelta automáticamente por el gestor de paquetes, y quizás debas actualizarlo manualmente ejecutando:
$ npm install js-yaml@latest |
o
$ yarn add js-yaml@latest |
si usas yarn
.