🔥 Hot Module Replacement

O Hot Module Replacement (HMR) melhora a experiência de desenvolvimento atualizando automaticamente os módulos no navegador em tempo de execução sem precisar de uma atualização inteira da página. Isso significa que o estado do aplicativo pode ser mantido enquanto você muda pequenas coisas. A implementação do HMR do Parcel suporta arquivos de JavaScript e CSS de fábrica. O HMR é automaticamente desativado quando se utiliza o Parcel em modo de produção.

À medida que você salva arquivos, o Parcel reconstrói o que mudou e envia uma atualização para todos os clientes em execução que contenham o novo código. O novo código substitui a versão antiga e é analisado junto com todos os outros. Você pode se conectar a este processo usando a API module.hot, que pode notificar seu código quando um módulo está prestes a ser descartado ou quando uma nova versão entrar. Projetos como react-hot-loader podem auxiliar nesse processo e trabalhar integrado com o Parcel.

Existem dois métodos que você precisa conhecer: module.hot.accept e module.hot.dispose. Você chama module.hot.accept com um callback que é executado quando esse módulo ou qualquer uma das suas dependências são atualizadas. module.hot.dispose aceita um callback que é chamado quando esse módulo está prestes a ser substituído.

if (module.hot) {
  module.hot.dispose(function() {
    // Módulo que está prestes a ser substituído
  })

  module.hot.accept(function() {
    // Módulo ou uma de suas dependências que acabaram de ser atualizados
  })
}

Dependências automagicamente instaladas

Sempre que o Parcel vê uma dependência que se encaixa o padrão node_module e não pode encontrá-la, tenta-se instalar essa dependência usando yarn ou npm dependendo se encontrar um arquivo yarn.lock ou não. Isso evita que o desenvolvedor tenha que sair do pacote ou ter várias janelas de terminal abertas.

Isto ocorre somente em development (utilizando serve ou watch), no entanto, em produção (utilizando build) a instalação automática é desabilitada para evitar efeitos colaterais indesejados na implantação.

Você pode desabilitar este recurso utilizando --no-autoinstall.

Safe Write

Alguns editores de texto e IDE têm um recurso chamado safe write, isto basicamente impede a perda de dados, criando uma cópia do arquivo e o renomeando quando salvo.

Quando o recurso Hot Module Reload (HMR) é utilizado, é bloqueada a detecção automatica de mudanças em arquivos, para desabilitar o safe write utilize uma das opções fornecidas abaixo:

Ajude-nos a melhorar esta documentação

Se alguma coisa estiver faltando ou não estiver inteiramente clara, por favor crie uma issue no repositório deste site ou edite esta página.