1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Para reduzir a carga de montar separadamente as ferramentas de desenvolvimento web em cada projeto, o Vite+ reúne runtime, gerenciador de pacotes e ferramentas de build, teste e verificação em um único ponto de entrada
  • vp dev, vp check, vp test, vp build, vp pack, vp run se conectam a Vite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt e oferecem um conjunto consistente de comandos
  • Desde o alfa, passou por mais de 12 versões e mais de 500 PRs, com melhorias em cache, migração, templates organizacionais, suporte a redes corporativas e estabilidade multiplataforma
  • Com base em repositórios públicos, mais de 1.300 dependem de vite-plus, e projetos como Dify, critical, BlockNote, vinext, îles, Inkline e npmx já estão usando
  • Como ainda está antes da versão 1.0, ainda restam cache remoto, suporte a GitLab CI/CD, compatibilidade com frameworks e plugins, migração, canais de distribuição e melhorias de diagnóstico

A toolchain unificada oferecida pelo Vite+

  • Vite+ foi lançado em beta como uma toolchain unificada para desenvolvimento web
  • Em um único ponto de entrada, gerencia o runtime e o gerenciador de pacotes, além de oferecer várias ferramentas de frontend juntas em uma stack testada
  • É totalmente open source sob licença MIT e não é vinculado a nenhum framework específico
  • Pode ser usado em vários tipos de projetos web, como CLI, bibliotecas e apps web
  • Novos projetos começam com vp create, e projetos existentes com vp migrate

Desenvolvimento, verificação e build com os mesmos comandos

  • O Vite+ foi projetado para usar o mesmo sistema de comandos, em vez de exigir aprender combinações de ferramentas e comandos diferentes em cada repositório
  • Os principais comandos são os seguintes
    • vp dev: inicia um servidor de desenvolvimento baseado no Vite 8 com hot module replacement
    • vp check: executa de uma vez formatação com Oxfmt, lint com Oxlint e verificação de tipos
    • vp test: executa testes unitários com base no Vitest
    • vp build: realiza build de produção com base no Vite 8
    • vp pack: empacota bibliotecas com base no tsdown e inclui boas práticas
    • vp run: executa scripts npm ou tarefas com um executor embutido de tarefas com reconhecimento de monorepo e usa cache inteligente
  • À medida que equipes e bases de código crescem, os benefícios a seguir aumentam
    • versões das ferramentas ficam alinhadas
    • fica mais fácil compartilhar configurações
    • o processo de setup para novos contribuidores diminui
    • o CI executa os mesmos comandos do desenvolvimento local
  • É voltado a desenvolvedores que não querem montar manualmente a toolchain repetidamente e a equipes que desejam configurações consistentes em todos os projetos
  • O Vite+ não substitui o ecossistema do Vite
    • plugins do Vite continuam sendo plugins do Vite
    • os projetos podem continuar usando internamente o gerenciador de pacotes que preferirem
    • o Vite+ fornece uma camada de integração para que esses elementos funcionem como uma única toolchain

O que mudou do alfa até o beta

  • Desde o alfa do Vite+, após testes em projetos reais, foram lançadas mais de 12 versões e mesclados mais de 500 PRs
  • As principais melhorias são as seguintes
    • Cache mais inteligente: o vp run combina rastreamento automático de dados com metadados reportados pelo Vite, fazendo o cache de build funcionar corretamente sem listar manualmente entradas, saídas e variáveis de ambiente
    • Melhorias de migração: o vp migrate lida com várias configurações de apps e também fornece prompts de migração para agentes
    • Recursos corporativos: com templates organizacionais, padroniza configurações entre equipes, e com HTTP com reconhecimento de proxy e CA personalizada, permite executar vp mesmo atrás de proxies corporativos e firewalls
    • Multiplataforma: o vp foi reforçado para funcionar melhor nos principais sistemas operacionais e shells
    • Refinamento e melhorias: mais de 180 correções e melhorias foram aplicadas ao vite-plus
  • O histórico detalhado de mudanças pode ser visto no registro de releases do Vite+

As ferramentas base também evoluíram juntas

Casos reais de adoção

  • mais de 1.300 repositórios públicos que dependem de vite-plus, sem contar projetos privados e instalações globais de CLI
  • O Vite+ está sendo usado em vários tipos de projeto
    • Dify: plataforma open source para criação de apps com LLM
    • critical: ferramenta de CSS critical-path independente de framework, de Addy Osmani
    • BlockNote: editor rich text em estilo Notion, baseado em blocos, para React
    • vinext: framework drop-in compatível com Next.js e baseado em Vite
    • zerobyte: automação de backup para usuários self-hosted feita com TanStack e React
    • îles: gerador de sites islands com hidratação parcial para Vue
    • agentsview: ferramenta local-first de busca e análise de sessões para agentes de código, feita com Svelte
    • Inkline: biblioteca de componentes UI com suporte a Vue, React, Svelte, Angular, Solid, Qwik, Astro
    • npmx: navegador open source do registro npm baseado em Nuxt
  • Daniel Roe, do npmx, afirmou que o Vite+ mantém a experiência de desenvolvimento rápida e também acelera CI e o processo de review

Desafios que ainda restam antes da 1.0

  • O Vite+ é estável, mas ainda não está completo; sua adoção é recomendada se ele atender aos recursos necessários de uma toolchain integrada
  • Até a 1.0, o foco será nos itens a seguir
    • implementar cache remoto para o Vite Task do vp run
    • introduzir setup-vp para GitLab CI/CD
    • melhorar a compatibilidade com frameworks e plugins do Vite de forma ampla
    • dar suporte a mais alvos de migração
    • adicionar canais de distribuição como uma fórmula oficial do Homebrew
    • tornar documentação e diagnósticos mais claros
  • O feedback da comunidade é priorizado para reduzir as lacunas de compatibilidade restantes antes do lançamento da 1.0

Instalação e migração

  • O comando global vp pode ser instalado no macOS/Linux com o comando abaixo
curl -fsSL https://vite.plus | bash
  • No Windows, use o seguinte comando PowerShell
irm https://vite.plus/ps1 | iex
  • Para criar um novo projeto, use o comando abaixo
vp create
  • Para testar o Vite+ em um projeto Vite existente, use o comando abaixo
vp migrate

1 comentários

 
GN⁺ 3 시간 전
Comentários do Hacker News
  • Gosto muito do Vite, mas não faço ideia do que são as outras ferramentas
    Fiquei um tempo de cabeça baixa trabalhando e, quando vi, o ecossistema de ferramentas de frontend tinha evoluído de repente; fico me perguntando se existe uma tendência em direção a uma stack chata, mas que funciona bem

    • As ferramentas incluídas são, na prática, muito boas: o vitest é um executor de testes muito rápido e, mesmo depois de usar várias ferramentas como jest e o executor de testes embutido do Node, continuo gostando dele
      O oxlint substitui o eslint, é compatível com o formato dos arquivos de configuração e, por não ser escrito em JavaScript, é muito rápido. Também usei o biome, mas o oxlint tinha mais regras e melhor compatibilidade com eslint
      O oxfmt substitui o prettier e também é mais rápido por não ser escrito em JavaScript, e o rolldown substitui o rollup mantendo compatibilidade, mas sendo muito mais rápido. Em projetos novos, já estou usando principalmente essas ferramentas
    • As outras ferramentas são para testes, bundling, lint e formatação
      Antes, era preciso usar ferramentas de projetos open source diferentes, cada uma com suas próprias configurações e ciclos de atualização; agora tudo isso é tratado como uma única cadeia de ferramentas simples
      O Vite+ é, na prática, uma stack “chata, mas que funciona”, com desempenho melhor e menos necessidade de configuração
    • Sim, é exatamente nessa direção
      A ideia é reescrever em Rust para ficar mais rápido, como eslint → oxlint e prettier → oxfmt, e aceitar a transição de webpack → Vite, que já está amplamente difundida
      rolldown → tsdown adiciona suporte a TypeScript, e jest → vitest combina bem com Vite
      É como pegar as convenções estabelecidas na última década e reunir suporte a TypeScript, desempenho baseado em Rust e interoperabilidade em um só lugar
    • Tentei usar Vite, mas acabei me afastando porque não senti grandes vantagens em relação ao esbuild
      Também uso Deno e queria entender o que exatamente é útil aqui
    • Essa é a mais nova stack chata, mas que funciona em ascensão hoje em dia
  • Gosto de Vite, Vitest, Oxlint e Oxfmt, e na maioria dos projetos novos olho primeiro para esse lado
    Espero que esse pessoal tenha financiamento suficiente para continuar desenvolvendo isso por pelo menos os próximos 10 anos
    É muito melhor do que abrir um projeto antigo e encontrar Gulp, Grunt, webpack e várias outras ferramentas desconexas misturadas. Até migrei um desses projetos para a nova stack

    • Pelo que sei, a VoidZero foi adquirida pela Cloudflare, então financiamento provavelmente não é o problema
      A questão é se a Cloudflare vai deixar esse pessoal continuar criando funcionalidades do Vite e do Vite+. São recursos que beneficiam não só a Cloudflare, mas qualquer plataforma de nuvem
      https://blog.cloudflare.com/voidzero-joins-cloudflare/
    • Fazer Vite, ESLint, Prettier, TypeScript e React se encaixarem todos de forma natural pode ser complicado
      Especialmente se for um full-stack com renderização no lado do servidor; se você olhar só para frontend e tirar o TypeScript da jogada, fica bem mais simples
      Ainda resta ver se o Vite+ ajuda nos casos mais complexos
  • Acho que esse projeto precisa encontrar um nome melhor
    Na prática, não é exatamente um Vite melhor, mas sim um conjunto de outras ferramentas, então fica bem confuso
    Talvez a Void Zero estivesse tentando monetizar com a marca Vite na época, mas agora que foi adquirida pela Cloudflare, isso nem parece mais necessário

    • Como são várias coisas adicionadas ao Vite, “plus” pode ter vários significados
  • Estou usando Vite, Vitest, Rolldown, tsdown, Oxlint e Oxfmt com bastante satisfação
    Há muitos pacotes hard-forked e não quero voltar atrás. Simplesmente funciona tudo
    Se o nome estiver te confundindo, vale começar por Oxlint https://oxc.rs/docs/guide/usage/linter e Rolldown https://rolldown.rs/
    Ao adotar isso nos últimos 6 meses, quase não precisei mexer no tsconfig
    Normalmente, a menos que seja algo como antd6, echart, um motor de renderização ou uma biblioteca geoespacial, eu pego um pacote novo, organizo com Claude, ajusto para um sistema de tipos rígido e uniforme e depois adapto ao meu gosto em Vite, tsconfig e oxlint
    No fim, isso reduz a necessidade de ficar acompanhando problemas de inchaço de bibliotecas ou ataques à cadeia de suprimentos, além de facilitar leitura e manutenção

  • O Vite teve cinco grandes versões em quatro anos, de 2022 a 2026: 3 → 4 → 5 → 6 → 7 → 8
    Toda vez houve mudanças incompatíveis e os desenvolvedores precisaram migrar; é coisa demais. E nem é como se tivesse melhorado de forma dramática em relação à versão 3
    Não quero levar esse nível de mudança desnecessária e confusão constante para o resto da cadeia de ferramentas de desenvolvimento
    Se no fim o Vite+ for só um invólucro dos tools existentes por meio de uma interface de linha de comando abstraída, isso significa atravessar ainda mais camadas de indireção para conseguir o comportamento desejado, então ainda não estou otimista

    • Acompanhei todas as grandes migrações e foi tudo bem tranquilo
      Não lembro de nenhum grande problema, e no geral sempre valeu a pena
    • Eu mesmo fiz as migrações e não foi nada terrível
      Houve algumas mudanças incompatíveis, mas eram relativamente isoladas, e os ganhos de velocidade e melhorias entre essas versões foram bem grandes
    • Nós também fizemos todas essas migrações de versão principal e não tivemos quebra nem grande churn
      Fico curioso para saber que tipos de quebra você enfrentou
    • É difícil concordar que não tenha melhorado muito em relação à versão 3
      As funcionalidades adicionadas para renderização no lado do servidor foram uma grande melhora
    • Atualizei direto da 4 para a 8 e só precisei mudar 5 linhas de configuração
      Queria que parassem de reclamar sem parar de um problema que não existe. Fico até em dúvida se vocês realmente usam essas ferramentas
  • É muito difícil acompanhar o frontend, ou até mesmo o ecossistema JavaScript
    Sinto falta da época em que trabalhava com Laravel e queria que as vagas com Laravel pagassem melhor

    • Você provavelmente não vai querer trabalhar com Laravel Livewire e Alpine.js
      Mesmo assim, precisa continuar acompanhando, e o resultado pode nem ser tão satisfatório
    • Na verdade, você não precisa necessariamente acompanhar tudo
      O que você usava antes ainda continua funcionando
    • Concordo. Nós também estamos substituindo aos poucos nosso monólito em Laravel por Python Lambda
      Sinto muita falta da época do Laravel 6
  • Como funcionou com o uv, acho que uma equipe competente conseguiria fazer o mesmo no JavaScript

    • Surpreende que este seja o único comentário falando de uv
      Para mim, é uma comparação bem óbvia, e isso parece um avanço muito bem-vindo para o ecossistema JavaScript
      Graças ao uv, trabalhar com Python voltou a ser prazeroso
  • Fico curioso se isso também pode ser usado para builds de Node, como o Vite, ou se é só para navegador

    • Como usa Vite, as limitações são as mesmas do Vite
      Ainda assim, estou usando vite-plugin-node com Vite em um servidor NestJS sem problemas
      Veja o exemplo em https://github.com/leosuncin/nest-vite-example/blob/master/v...
    • Minha configuração meio "receita mágica" que funciona bem para Node está aqui: https://pastebin.com/ynz4B5X0
      Basicamente, é só fingir que você mesmo é uma biblioteca
    • Também estou usando Vite+ em CLI
      Nesse caso, não uso o Vite como servidor de desenvolvimento, mas lint, formatação, execução de tarefas e cache continuam lá
    • Sempre que alguém sugere empacotar código Node, eu fico curioso sobre o caso de uso
      Qual seria a vantagem? É para ofuscar dentro de SEA?
  • Também fiquei curioso se isso tem assinatura
    Quando vejo um “+” no nome, fico desconfiado e automaticamente assumo que vem com assinatura
    Pelo que vi, não parece ser o caso

    • Também foi a primeira coisa que pensei
      Agora “$name+” ficou fortemente marcado como “o serviço por assinatura de $name”
    • Está escrito “totalmente open source sob licença MIT”
    • Talvez esse fosse o plano original, mas depois parece que houve um acqui-hire
    • O nome realmente preocupa
  • Fico curioso se dá para usar isso com Astro