Melhor modo para compactar e distribuir um site #1778
Replies: 5 comments
-
Webpack e Rollup continuam sendo mantidos, creio que ainda são os mais recomendáveis. Para em específico todos os pontos, iria de webpack, mas continua sendo meio chato para configurar, sendo o segundo mais voltado a libs js. Saindo do convencional, tem o Parcel que a filosofia é zero configuration e um cara que só cito porém desaconselharia utilizar mas vale dar uma olhada é o Snowpack. |
Beta Was this translation helpful? Give feedback.
-
@ninetails Realmente, o webpack pelo que li ano passado se mostrou bem chato, tendo que alterar várias coisas, principalmente por um projeto antigo ainda ser em AngularJS. Obrigado pelas dicas. |
Beta Was this translation helpful? Give feedback.
-
Eu uso o Rollup para projetos e sites (além de libs) e recomendaria tranquilamente. É muito mais simples de configurar do que o Webpack, tem uma boa comunidade, e é mantido ativamente. Sobre seus pontos, seguem algumas soluções com Rollup:
Aqui depende da sua preferência. Se usar SASS: PostCSS: Se for usar CSS "puro", recomendo PostCSS com os plugins
Pesquisei e vi que existem plugins, mas nunca usei nenhum deles, então não arrisco recomendar nenhum.
Mesma coisa do HTML. Pesquisei e vi que existe pelo menos um plugin que faz isso, mas eu particularmente sempre minifiquei as imagens "na mão" usando Photoshop e o ImageOptim, então não arrisco indicar nenhum.
Você pode usar o @rollup/plugin-replace mandando ele substituir uma palavra por um número aleatório sempre que gerar um build. Exemplo: <!-- no seu html -->
<script src="meu/bundle.js?BUILD_RANDOM"></script> // no seu rollup.config.js
import replace from '@rollup/plugin-replace';
export default {
input: 'src/index.js',
output: {
dir: 'output',
format: 'iife'
},
plugins: [
replace({'BUILD_RANDOM': Math.random().toString().substr(2) })
]
}; Resultado do build: <script src="meu/bundle.js?15379226347141584"></script> |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
O meu principal problema com os métodos modernos é o conceito que eles usam para carregar arquivos JS de terceiros, que eu não consigo entender. Antigamente (em torno de 2008 - 2012) usava algo simples como:
E quando migrei para o Grunt + Yeoman com Wiredep (2013+) tudo seguia a mesma lógica, apenas o melhorava é que tudo era incorporado em bundles, dessa forma caso algo desse errado era fácil saber o que havia disparado erro e colocava na ordem correta os scripts para serem carregados.
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Há muitos anos atrás com a moda do Yeoman haviam vários "generators" que usavam muitos módulos NPM + Grunt.js + bower para testar localmente e distribuir o site, criando os arquivos únicos de JS, CSS, compactando os arquivos do site (HTML, CSS, JS e imagens).
Era bem fácil manter o site atualizado, alterar e gerar uma versão compacta do site para colocar em produção.
Hoje muitos desses módulos estão depreciados ou usam dependências com vulnerabilidades e não sofrem atualizações há anos.
Qual o melhor modo hoje em dia para realizar esse trabalho?
Beta Was this translation helpful? Give feedback.
All reactions