✨ Produção

Quando chegar a hora de enviar sua aplicação para produção, você pode usar o modo de produção do Parcel.

parcel build entry.js

Otimizações

Isso desabilita o watch e o hmr para que o código só seja compilado uma vez. Ele também habilita o minifier para todos os arquivos de saída para reduzir o tamanho dos arquivos. Os minifiers utilizados pelo Parcel são terser para JavaScript, cssnano para CSS e htmlnano para HTML.

Ativando o modo de produção também define a variável de ambiente NODE_ENV=production. As bibliotecas mais conhecidas, como React, possuem recursos de depuração apenas para desenvolvimento, que são desativados ao definir esta variável de ambiente, o que resulta em compilações menores e mais rápidas para produção.

Para aproveitar o mesmo tipo de recursos de depuração somente de desenvolvimento, certifique-se de que a opção dead_code do teaser esteja habilitada (está por padrão) e encapsula qualquer depuração somente de desenvolvimento em uma verificação condicional assim:

if (process.env.NODE_ENV === 'development') { // Ou, `process.env.NODE_ENV !== 'production'`
  // Irá executar somente em desenvolvimento e ignorado do build de produção.
}

Estratégia de nomeação de arquivos

Para permitir a configuração de regras de cache muito agressivas para o seu CDN, para o melhor desempenho e eficiência, o Parcel faz hashes dos nomes dos arquivos da maioria dos bundles (se o bundle deve ter um nome legível/lembrável ou não, principalmente para SEO).

O Parcel segue a tabela a seguir, quando se trata de nomear os pacotes (entrypoints nunca são em hasheados).

Tipo de Bundle Tipo Conteúdo hasheado
Qualquer Entrypoint
JavaScript <script>
JavaScript Dynamic import
JavaScript Service worker
HTML iframe
HTML anchor link
Raw (Imagens, arquivos de texto, ...) Import/Require/...

O hash do arquivo segue o seguinte padrão de nomeação: <nome do diretório>-<hash>.<extensão>.

Armadilhas cross platform

Em um esforço para otimizar o desempenho de compilação de produção, o Parcel tentará determinar o número de CPUs disponíveis na máquina que executa o comando de compilação para que ele possa distribuir o trabalho de acordo. Para isso, a Parcel conta com o módulo physical-cpu-count.

Esteja ciente que este módulo supõe que você tem o programa lscpu disponível no seu sistema.

Usando um CI

Se você deseja integrar o Parcel no seu sistema de integração contínua (por exemplo, Travis ou Circle CI), talvez seja necessário instalar o Parcel como uma dependência local.

As instruções podem ser encontradas aqui.

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.