Soluções de Problemas

No caso de você ter problemas com o uso do Hexo, aqui está uma lista de soluções para alguns dos problemas mais frequentes. Se esta página não ajudar a resolver seu problema, tente fazer uma pesquisa no nosso GitHub ou no nosso Google Group.

YAML Parsing Error

JS-YAML: incomplete explicit mapping pair; a key node is missed at line 18, column 29:
last_updated: Last updated: %s

Delimite a string com aspas duplas se ela contiver dois pontos (:).

JS-YAML: bad indentation of a mapping entry at line 18, column 31:
last_updated:"Last updated: %s"

Certifique-se de que está usando indentação por espaço (soft tabs) e adicione um espaço após os dois pontos.

Para mais informações, veja YAML Spec.

EMFILE Error

Error: EMFILE, too many open files

Embora o Node.js tenha I/O não bloqueante, o número máximo de I/O síncronas ainda é limitado pelo sistema. Você pode encontrar um erro EMFILE ao tentar gerar uma grande quantidade de arquivos. Você pode tentar executar o seguinte comando para aumentar o número de operações de I/O síncronas permitidas.

$ ulimit -n 10000

Error: cannot modify limit

If you encounter the following error:

$ ulimit -n 10000
ulimit: open files: cannot modify limit: Operation not permitted

It means some system-wide configurations are preventing ulimit to being increased to a certain limit.

To override the limit:

  1. Add the following line to “/etc/security/limits.conf”:
* - nofile 10000

# '*' applies to all users and '-' set both soft and hard limits
  • The above setting may not apply in some cases, ensure “/etc/pam.d/login” and “/etc/pam.d/lightdm” have the following line. (Ignore this step if those files do not exist)
session required pam_limits.so
  1. If you are on a systemd-based distribution, systemd may override “limits.conf”. To set the limit in systemd, add the following line in “/etc/systemd/system.conf” and “/etc/systemd/user.conf”:
DefaultLimitNOFILE=10000
  1. Reboot

Processos com Pouca Memória

Quando você encontrar esse erro durante a geração:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

Aumente o tamanho da memória heap do Node.js alterando a primeira linha de hexo-cli (o comando which hexo encontra o arquivo).

#!/usr/bin/env node --max_old_space_size=8192

Out of memory while generating a huge blog · Issue #1735 · hexojs/hexo

Problemas de Deploy com Git

error: RPC failed; result=22, HTTP code = 403

fatal: 'username.github.io' does not appear to be a git repository

Certifique-se de ter configurado o git corretamente no seu computador ou tente usar a URL HTTPS do repositório ao invés da URL SSH.

Problemas de Servidor

Error: listen EADDRINUSE

Você pode ter iniciado dois servidores do Hexo ao mesmo tempo ou pode haver outro aplicativo usando a mesma porta. Tente modificar a configuração port ou iniciar o servidor do Hexo com o argumento -p.

$ hexo server -p 5000

Problemas na Instalação de Plugins

npm ERR! node-waf configure build

Este erro pode ocorrer ao tentar instalar um plugin escrito em C, C++ ou outra linguagem diferente de JavaScript. Verifique se você instalou o compilador correto em seu computador.

Error com DTrace (Mac OS X)

{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }

A instalação do DTrace pode ter problemas, use isso:

$ npm install hexo --no-optional

Veja a issue #1326 no Github.

Iterando o Modelo de Dados em Jade ou Swig

A Hexo usa Warehouse para o seu modelo de dados. Ele não é um array, então você pode ter que transformar objetos em iteráveis.

{% for post in site.posts.toArray() %}
{% endfor %}

Dados não Atualizados

Alguns dados não podem ser atualizados ou os arquivos recém-gerados são idênticos aos da última versão. Limpe o cache e tente novamente.

$ hexo clean

Nenhum Comando é Executado

Quando você não consegue executar nenhum comando do Hexo, com exceção de help, init e version, isso pode estar acontecendo pela falta do hexo no package.json:

{
"hexo": {
"version": "3.2.2"
}
}

Conteúdo Escapando

O Hexo usa Nunjucks para renderizar posts (Swig foi usado na versão mais antiga, que compartilha uma sintaxe semelhante). O conteúdo delimitado com {{ }} ou {% %} será “parseado” e pode causar problemas. Você pode empacotar um conteúdo sensível com a tag plugin raw, single backtick `{{ }}` or triple backtick.
Alternatively, Nunjucks tags can be disabled through the renderer’s option (if supported), API or front-matter.

{% raw %}
Hello {{ world }}
{% endraw %}
```
Hello {{ world }}
```

ENOSPC Error (Linux)

Às vezes, ao executar o comando $ hexo server é retornado o seguinte erro:

Error: watch ENOSPC ...

Isto pode ser consertado através do comando $ npm dedupe ou, se isso não funcionar, tente o seguinte comando no terminal do Linux:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Isso aumentará o limite do número de arquivos que você pode assistir.

EMPERM Error (Windows Subsystem for Linux)

Ao executar $ hexo server em um ambiente BashOnWindows, ele retorna o seguinte erro:

Error: watch /path/to/hexo/theme/ EMPERM

Infelizmente, o WSL (Windows Subsystem for Linux) atualmente não suporta os observadores (watchers) do sistema de arquivos. Portanto, o recurso de atualização em tempo real do servidor do Hexo não está disponível no momento. Contudo, ainda é possível executar o servidor a partir de um ambiente WSL, primeiro gere os arquivos e depois execute servidor em modo estático:

$ hexo generate
$ hexo server -s

Este é um problema no BashOnWindows conhecido, e em 15 de agosto de 2016, a equipe do Windows disse que eles trabalhariam nisso. Você pode obter atualizações de progresso e encorajá-los a priorizá-lo na página UserVoice do problema.

Erro de Renderização de Template

Às vezes, ao executar o comando $ hexo generate, ele retorna um erro:

FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Template render error: (unknown path)

One possible reason is that there are some unrecognizable words in your file, e.g. invisible zero width characters.