Resumindo, Rockpack é Criar aplicativo React ( CRA
) em esteróides. É uma ferramenta de bootstrap do React que visa fazer o trabalho pesado e simplifica o processo de configuração de aplicativos React.
O Rockpack permite que os desenvolvedores inicializem aplicativos React com suporte para renderização do lado do servidor, agrupamento, linting, teste, registro, localização e muito mais.
A maneira mais fácil de pensar no Rockpack é que ele é CRA
com muitas adições úteis, bem pensadas e, muitas vezes, necessárias.
Nesta postagem, aprenderemos sobre o Rockpack, sua arquitetura, módulos e por que ele é necessário.
Módulos Rockpack
Uma das melhores coisas sobre o Rockpack é que ele tem uma arquitetura modular para que você possa usar apenas o módulo Rockpack que desejar.
Nesta seção, examinaremos cada módulo Rockpack em detalhes.
@ rockpack/compiler
Este é um empacotador React baseado em Webpack
. Ele é pré-configurado com os carregadores e plug-in necessários e usa as melhores práticas prontas para uso.
Uso:
Para usar este módulo, execute as etapas a seguir.
- Módulo de instalação:
#NPM npm install @ rockpack/compiler--save-dev #FIO yarn add @ rockpack/compiler--dev
- Crie um arquivo
build.js
no diretório raiz com o seguinte código:const {frontendCompiler}=require ('@ rockpack/compiler'); frontendCompiler ();
- Execute o
build.js
:# DESENVOLVIMENTO cross-env NODE_ENV=construção do nó de desenvolvimento #PRODUÇÃO cross-env NODE_ENV=construção do nó de produção
Quando você executa a compilação de produção, ela cria uma versão reduzida do seu aplicativo com otimização de produção.
O compilador Rockpack vem com vários recursos incríveis. Abaixo estão alguns deles:
- Suporte TypeScript
- Suporte a scripts de build nodejs com nodemon, livereload, mapas de origem
- Otimizações do React
- otimizações de SEO
- Minificações de imagem
- Suporte GraphQL (webpack-graphql-loader)
A lista continua. Você pode obter uma lista completa aqui .
@ rockpack/ussr
Esta importante biblioteca fornece suporte de renderização universal do lado do servidor ( SSR
) para o projeto Rockpack. Diz-se que fornece suporte SSR
universal porque funciona com Redux (thunk, sagas), Apollo, Mobx e outras soluções.
Pronto para usar o React oferece suporte a SSR
, mas faz isso sem considerar as operações assíncronas. @ rockpack/ussr
adiciona suporte para operações assíncronas para React durante SSR
.
Ele fornece algumas APIs (ganchos personalizados) que são análogos aos seus homólogos do React. Alguns deles são useUssrState
e useUssrEffect
. Eles são análogos ao useState
e ao gancho useEffect
. No entanto, o useUssrState
e o useUssrEffect
oferecem suporte a operações assíncronas e SSR
.
Uso:
Para usar o @ rockpack/ussr
, siga as etapas abaixo.
- Instale os módulos:
# NPM npm install @ rockpack/ussr--save npm install @ rockpack/compiler--save-dev # YARN yarn add @ rockpack/ussr yarn add @ rockpack/compiler--dev
- Importe e use ganchos com suporte para
SSR
como este:import React from'react'; import {useUssrState, useUssrEffect} de'@ rockpack/ussr'; const getUsers=async ()=> { //executa alguma operação assíncrona } export const App=()=> { const [usuários, setUsers]=useUssrState ({usuários: []}); useUssrEffect (async ()=> { const allUsers=espera getUsers (); setUsers (allUsers); }); Retorna { //executa algumas operações para renderizar a lista de usuários }; };
- Configure
client.jsx
:import React from'react'; importar {hidrato} de'react-dom'; importe createUssr de'@ rockpack/ussr'; importar {App} de'./App'; const [Ussr]=createUssr (window.USSR_DATA); hidrato(
A linha:
const [Ussr]=createUssr (window.USSR_DATA);
Garante que o useUssrState
funcione corretamente, associando o estado executado no servidor ao cliente.
Além disso, build.js
e um arquivo server.jsx
(que usa um Koa
) são configurados por padrão, uma vez que escolhemos inicialize um aplicativo SSR
. Esses arquivos são pré-configurados para funcionarem entre si e não precisam de mais edições.
Você pode obter mais detalhes sobre como usar o módulo @ rockpack/ussr
aqui .
@ rockpack/tester
Ele usa Jest e alguns módulos e complementos recomendados. Ele apresenta um conjunto de testes robusto configurado com as melhores práticas. E é totalmente compatível com TypeScript e babel.
Uso:
Para usar este módulo, siga as etapas abaixo.
- Instalação:
# NPM npm install @ rockpack/tester--save-dev # YARN yarn add @ rockpack/tester--dev
- Crie o
test.js
na raiz do projeto e adicione os seguintes códigos:const tests=require ('@ rockpack/tester'); testes ();
- Execute testes com os seguintes comandos:
node tests.js #Desenvolvimento node tests.js--watch
@ rockpack/codestyle
Este é o Eslint configurado de acordo com as práticas recomendadas.
Uso:
Para usar este módulo, siga as etapas abaixo.
- Instalação:
# NPM npm install @ rockpack/codestyle--save-dev # YARN yarn add @ rockpack/codestyle--dev
- Crie um arquivo
eslintrc.js
com o seguinte código:const {rockConfig}=require ('@ rockpack/codestyle'); module.exports=rockConfig ({ 'no-plusplus':'erro' });
- Para substituir todas as configurações, você pode passar um segundo para a função
rockConfig ()
conforme mostrado abaixo:module.exports=rockConfig ({}, { plugins: [ 'algum novo plugin' ] });
Você pode aprender mais sobre este módulo aqui .
@ rockpack/logger
É aqui que as coisas ficam realmente interessantes e que o Rockpack brilha. O módulo @ rockpack/logger
é um sistema de registro avançado que registra todas as ações do usuário (botões pressionados, informações do sistema operacional, telas, etc.). Essas ações podem ser analisadas durante uma seção de depuração.
Uso:
Para usar este módulo, siga as etapas abaixo.
- Instalação:
# NPM npm install @ rockpack/logger--save # YARN yarn add @ rockpack/logger
- Envolva o componente
App.js
no componenteLoggerContainer
conforme visto abaixo:...
dayjs (). format ('AAAA-MM-DD HH: mm: ss')} stdout={showMessage} onError={stackData=> sendToServer (stack)} onPrepareStack={stack=> stack.language=window.navigator.language} > ...
O snippet de código acima deve ser o valor de retorno de uma função anônima exportada
. A configuração completa e o uso do módulo @ rockpack/logger
são um pouco exigentes.
@ rockpack/localazer
Este é um módulo localizador avançado que usa gettext . Ele fornece uma maneira fácil de (localizar) adaptar nossos aplicativos a diferentes idiomas e regiões.
Uso
- Instalação:
# NPM npm install @ rockpack/localaser--save npm install @ rockpack/compiler--save-dev # YARN yarn add @ rockpack/localaser yarn add @ rockpack/compiler--dev
- Em seguida, você deve envolver o
App.js
nos componentesLocalizationObserver
conforme mostrado abaixo:import {LocalizationObserver} de'@ rockpack/localaser'; Const Root=()=> { Retorna (
A configuração e o uso do módulo @ rockpack/localaser
são um pouco exigentes.
Por que Rockpack?
Algumas alternativas notáveis do Rockpack são Next.js
e Create React App
. No entanto, a Rockpack supera seus concorrentes de várias maneiras.
Primeiro, todos os aplicativos Rockpack oferecem suporte para o seguinte:
- Importação de diferentes formatos de arquivo ( lista de formatos )
- Otimização de imagem, otimização SVG
- Carregando arquivos SVG como componentes React
- CSS/SCSS/menos módulos
- Babel ou TS, suporte TS para módulos CSS/SCSS/less
- PostCSS autoprefixer
- Otimizações de SEO, otimizações de React
- Analisador de pacotes
- suporte GraphQL
A lista completa pode ser encontrada aqui (todos eles são reunidos usando as práticas recomendadas). Ao fornecer tudo isso pronto para uso, a Rockpack visa reduzir o tempo de configuração do aplicativo. Isso independe do tamanho do aplicativo e da habilidade do desenvolvedor.
Outros motivos para usar o Rockpack incluem:
- É modular e pode ser importado seletivamente para aplicativos legados
- Ele fornece uma API fácil de usar e muito amigável para iniciantes (com apenas uma linha você pode inicializar um aplicativo com os recursos listados acima)
- Tem uma arquitetura muito flexível, portanto, você pode usar suas bibliotecas preferidas para gerenciamento de estado
- Ele fornece ferramentas poderosas para registro e localização
As vantagens do Rockpack são incríveis e excelentes, qualquer desenvolvedor estaria interessado em usar esta biblioteca incrível. Veremos como inicializar aplicativos React usando Rockpack na próxima seção.
Como começar a Rockpack
A maneira mais fácil de começar a usar o Rockpack é usar o @rockpack módulo/starter
. Isso faz parte do projeto Rockpack.
Suporta três tipos diferentes de aplicativos:
-
- React Client Side Render (
React CSR
)-Fornece um código clichê semelhante ao Create React App - React Server Side Render (
React SSR Light Pack
)-Isso fornece o seguinte código padrão:- Renderização do lado do servidor (
SSR
) - Ele usa
Koa
para seu servidorNode.js
@loadable/components
- Renderização do lado do servidor (
- React Server Side Render (
React SSR Full Pack
)-Isso fornece um código clichê com o seguinte:- Tudo o que temos no
React SSR Light Pack
- React-Router
- Redux
- Redux-Saga
- React-Helmet-Async
- Tudo o que temos no
- Biblioteca ou componente React – Isso fornece um Webpack configurado de forma eficiente, necessário para desenvolver uma biblioteca ou componente React com suporte para a construção esm/cjs, bem como o versão minimizada.
- React Client Side Render (
Para inicializar qualquer um dos aplicativos, siga as etapas abaixo.
- Instalação:
#NPM npm install @ rockpack/starter-g
- Crie seu aplicativo:
rockpack
- Responda à pergunta do terminal e Rockpack cuida do resto. Quando tudo estiver pronto, você deverá obter o seguinte:
- Comece seu projeto:
cd
# e corra npm start
Conclusão
Rockpack é uma biblioteca bem pensada. Já estou animado para usá-lo.
Uma das coisas bonitas sobre o Rockpack é que não há uma curva de aprendizado acentuada, pois você ainda consegue escrever o código React. E oferece a flexibilidade de usar sua biblioteca preferida para coisas como gerenciamento de estado.
A postagem Como usar o Rockpack apareceu primeiro em LogRocket Blog .