1 points par GN⁺ 3 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Pour réduire la charge consistant à assembler séparément les outils de développement web pour chaque projet, Vite+ regroupe le runtime, le gestionnaire de paquets ainsi que les outils de build, de test et de vérification derrière un point d’entrée unique
  • vp dev, vp check, vp test, vp build, vp pack, vp run sont reliés à Vite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt et fournissent un ensemble de commandes cohérent
  • Depuis l’alpha, avec plus de 12 versions et plus de 500 PR, le caching, la migration, les templates d’organisation, la prise en charge des réseaux d’entreprise et la stabilité cross-platform ont été améliorés
  • Sur la base des dépôts publics, plus de 1 300 dépendent de vite-plus, et des projets comme Dify, critical, BlockNote, vinext, îles, Inkline et npmx l’utilisent déjà
  • Comme Vite+ n’a pas encore atteint la version 1.0, il reste du travail sur le caching distant, la prise en charge de GitLab CI/CD, la compatibilité avec les frameworks et plugins, la migration, les canaux de distribution et les diagnostics

La toolchain intégrée proposée par Vite+

  • Vite+ est une toolchain intégrée pour le développement web, désormais disponible en bêta
  • Depuis un point d’entrée unique, il gère le runtime et le gestionnaire de paquets, et fournit ensemble plusieurs outils frontend dans une stack testée
  • Entièrement open source sous licence MIT, sans dépendance à un framework particulier
  • Peut être utilisé pour divers projets web, dont des CLI, des bibliothèques et des applications web
  • Pour un nouveau projet, commencez avec vp create, et pour un projet existant, avec vp migrate

Développement, vérification et build avec les mêmes commandes

  • Vite+ est conçu pour éviter d’avoir à apprendre une combinaison d’outils et de commandes différente pour chaque dépôt, en imposant le même système de commandes partout
  • Les principales commandes sont les suivantes
    • vp dev : lance un serveur de développement basé sur Vite 8 avec hot module replacement
    • vp check : exécute en une seule fois le formatage avec Oxfmt, le lint avec Oxlint et la vérification de types
    • vp test : exécute des tests unitaires basés sur Vitest
    • vp build : effectue un build de production basé sur Vite 8
    • vp pack : bundle une bibliothèque avec tsdown en intégrant les bonnes pratiques
    • vp run : exécute des scripts npm ou des tâches avec un exécuteur intégré conscient des monorepos, en utilisant un caching intelligent
  • Plus l’équipe et la base de code grandissent, plus les avantages suivants augmentent
    • Alignement des versions d’outils
    • Partage plus simple de la configuration
    • Réduction des étapes de configuration pour les nouveaux contributeurs
    • La CI exécute les mêmes commandes que le développement local
  • Vite+ vise les développeurs qui ne veulent pas réassembler leur toolchain à chaque fois, ainsi que les équipes qui recherchent une configuration cohérente à l’échelle des projets
  • Vite+ ne remplace pas l’écosystème Vite
    • Un plugin Vite reste un plugin Vite
    • Les projets peuvent continuer à utiliser en interne le gestionnaire de paquets de leur choix
    • Vite+ fournit une couche d’intégration pour faire fonctionner ces éléments comme une seule toolchain

Ce qui a changé entre l’alpha et la bêta

  • Depuis l’alpha de Vite+, plus de 12 versions ont été publiées et plus de 500 PR ont été fusionnées après des tests sur des projets réels
  • Les principales améliorations sont les suivantes
    • Caching plus intelligent : vp run combine le suivi automatique des données avec les métadonnées remontées par Vite, afin que le cache de build fonctionne correctement sans avoir à lister manuellement les entrées, sorties et variables d’environnement
    • Migration améliorée : vp migrate gère divers réglages d’application et fournit aussi des prompts de migration pour les agents
    • Fonctionnalités enterprise : les templates d’organisation permettent de standardiser la configuration entre équipes, et la prise en charge HTTP des proxies et des autorités de certification personnalisées permet d’exécuter vp derrière des proxies d’entreprise et des pare-feu
    • Cross-platform : vp a été renforcé pour mieux fonctionner sur les principaux systèmes d’exploitation et shells
    • Affinage et améliorations : plus de 180 correctifs et améliorations ont été intégrés à vite-plus
  • Le détail des changements est disponible dans l’historique des releases de Vite+

Les outils sous-jacents ont aussi progressé

Cas d’adoption concrets

  • Plus de 1 300 dépôts publics dépendent de vite-plus, sans compter les projets privés ni les installations globales de la CLI
  • Vite+ est utilisé dans différents types de projets
    • Dify : plateforme open source pour créer des applications LLM
    • critical : outil framework-agnostic d’Addy Osmani pour le CSS critical-path
    • BlockNote : éditeur de texte enrichi de type Notion, basé sur des blocs, pour React
    • vinext : framework drop-in compatible Next.js basé sur Vite
    • zerobyte : automatisation de sauvegarde pour utilisateurs auto-hébergés, construite avec TanStack et React
    • îles : générateur de sites à islands avec hydratation partielle pour Vue
    • agentsview : outil local-first de recherche et d’analyse de sessions pour agents de code, construit avec Svelte
    • Inkline : bibliothèque de composants UI prenant en charge Vue, React, Svelte, Angular, Solid, Qwik, Astro
    • npmx : navigateur open source de registre npm basé sur Nuxt
  • Daniel Roe de npmx affirme que Vite+ permet de garder une expérience de développement rapide et accélère aussi la CI et le processus de revue

Les chantiers restants avant la 1.0

  • Vite+ est stable mais pas encore finalisé, et son adoption est recommandée si les fonctionnalités d’une toolchain intégrée répondent à vos besoins
  • Les priorités jusqu’à la 1.0 sont les suivantes
    • Implémenter le caching distant pour Vite Task, derrière vp run
    • Introduire setup-vp pour GitLab CI/CD
    • Améliorer la compatibilité avec l’ensemble des frameworks et plugins Vite
    • Prendre en charge davantage de cibles de migration
    • Ajouter des canaux de distribution comme une formule Homebrew officielle
    • Rendre la documentation et les diagnostics plus clairs
  • Les retours de la communauté sont prioritaires afin de réduire les écarts de compatibilité restants avant la sortie de la 1.0

Installation et migration

  • La commande globale vp s’installe sur macOS/Linux avec la commande suivante
curl -fsSL https://vite.plus | bash
  • Sous Windows, utilisez la commande PowerShell suivante
irm https://vite.plus/ps1 | iex
  • Pour créer un nouveau projet, utilisez la commande suivante
vp create
  • Pour essayer Vite+ sur un projet Vite existant, utilisez la commande suivante
vp migrate

1 commentaires

 
GN⁺ 3 시간 전
Avis sur Hacker News
  • J’aime vraiment Vite, mais je n’ai aucune idée de ce que sont les autres outils
    J’ai baissé la tête un instant pour travailler et, entre-temps, l’écosystème des outils front-end avait soudain évolué ; je me demande s’il existe une tendance vers une stack ennuyeuse mais qui fonctionne bien

    • Les outils inclus sont en fait plutôt excellents : vitest est un lanceur de tests très rapide, et il me plaît même après avoir essayé plusieurs outils comme jest ou le lanceur de tests intégré à Node
      oxlint remplace eslint tout en étant compatible avec le format des fichiers de configuration, et comme il n’est pas écrit en JavaScript, il est très rapide. J’ai aussi essayé biome, mais oxlint avait davantage de règles et une meilleure compatibilité avec eslint
      oxfmt remplace prettier et, n’étant pas écrit en JavaScript, il est plus rapide ; rolldown remplace rollup tout en étant compatible, mais bien plus rapide. Sur les nouveaux projets, j’utilise déjà surtout ces outils
    • Les autres outils servent aux tests, au bundling, au linting et au formatage
      Avant, il fallait utiliser des outils issus de différents projets open source, chacun avec sa propre configuration et son propre cycle de mise à jour ; désormais, tout est traité comme une chaîne d’outils simple et unique
      Vite+ est en fait la stack « ennuyeuse mais qui fonctionne bien », avec de meilleures performances et moins de configuration nécessaire
    • Oui, c’est exactement cette direction
      eslint → oxlint, prettier → oxfmt : on réécrit en Rust pour aller vite, et webpack → Vite est déjà suffisamment répandu pour être adopté
      rolldown → tsdown ajoute la prise en charge de TypeScript, et jest → vitest s’intègre bien à Vite
      En somme, cela reprend les conventions établies au cours des dix dernières années et rassemble prise en charge de TypeScript, performances basées sur Rust et interopérabilité
    • J’ai essayé Vite, mais comme je n’y ai pas vu de gros avantage par rapport à esbuild, je m’en suis éloigné
      J’utilise aussi Deno, et je me demande ce qui est utile là-dedans
    • C’est la nouvelle stack ennuyeuse mais qui fonctionne bien qui émerge en ce moment
  • J’aime Vite, Vitest, Oxlint et Oxfmt, et pour la plupart de mes nouveaux projets je regarde d’abord de ce côté
    J’espère que ces gens ont obtenu assez de financement pour pouvoir continuer à développer pendant au moins les dix prochaines années
    C’est largement mieux que d’ouvrir un vieux projet et d’y trouver un mélange de Gulp, Grunt, webpack et d’autres outils disparates. J’ai d’ailleurs migré l’un de ces projets vers la nouvelle stack

    • À ma connaissance, VoidZero a été racheté par Cloudflare, donc le financement ne devrait pas poser problème
      La vraie question est de savoir si Cloudflare les laissera continuer à créer Vite et les fonctionnalités de Vite+. Ce sont des fonctionnalités qui profitent à toutes les plateformes cloud, pas seulement à Cloudflare
      https://blog.cloudflare.com/voidzero-joins-cloudflare/
    • Faire en sorte que Vite, ESLint, Prettier, TypeScript et React s’emboîtent naturellement peut être délicat
      C’est encore plus vrai pour du full-stack avec rendu côté serveur ; si l’on ne regarde que le front-end et qu’on retire TypeScript, cela devient assez facile
      Il faudra voir si Vite+ aide dans les cas plus complexes
  • Je pense que ce projet devrait trouver un meilleur nom
    En réalité, ce n’est pas tant un meilleur Vite qu’un ensemble d’autres outils, donc c’est assez déroutant
    À l’époque, Void Zero voulait peut-être monétiser la marque Vite, mais maintenant que l’entreprise a été rachetée par Cloudflare, ce n’est plus nécessaire

    • Comme plusieurs choses ont été ajoutées à Vite, « plus » peut avoir plusieurs sens
  • J’utilise Vite, Vitest, Rolldown, tsdown, Oxlint et Oxfmt avec beaucoup de satisfaction
    J’ai aussi hard-forké beaucoup de paquets, et je n’ai pas envie de revenir en arrière. Tout fonctionne, tout simplement
    Si les noms prêtent à confusion, commencez par regarder Oxlint https://oxc.rs/docs/guide/usage/linter et Rolldown https://rolldown.rs/
    En les adoptant ces six derniers mois, je n’ai eu à modifier tsconfig que très légèrement
    En général, sauf pour des choses comme antd6, echart, les moteurs de rendu ou les bibliothèques géospatiales, je récupère les nouveaux paquets, je les fais nettoyer avec Claude, je les aligne sur un système de types strict et cohérent, puis je les adapte à mes préférences Vite, tsconfig et oxlint
    Au final, cela réduit le besoin de suivre en permanence les problèmes de bloat de bibliothèques ou d’attaques de la chaîne d’approvisionnement, et le code devient plus facile à lire et à corriger

  • Vite a eu cinq montées de version majeure en quatre ans, de 2022 à 2026 : 3 → 4 → 5 → 6 → 7 → 8
    À chaque fois, il y a eu des changements cassants et les développeurs ont dû migrer, ce qui fait beaucoup trop. D’autant que ce n’est pas devenu radicalement meilleur qu’à l’époque de la version 3
    Je n’ai pas envie d’étendre ce niveau de changements inutiles et de confusion permanente au reste de la chaîne d’outils de développement
    Si Vite+ se contente au final d’envelopper les outils existants dans une interface en ligne de commande abstraite, cela veut dire qu’il faudra traverser encore plus de couches d’indirection pour obtenir le comportement souhaité, donc je ne suis pas encore optimiste

    • J’ai suivi toutes les migrations majeures et elles se sont passées assez en douceur
      Je ne me souviens pas de gros problème, et à chaque fois cela en valait globalement la peine
    • Je les ai migrées moi-même, et ce n’était pas horrible
      Il y a eu quelques changements cassants, mais ils étaient relativement isolés, et les gains de vitesse et les améliorations entre ces versions ont été assez importants
    • Nous aussi, nous avons fait toutes ces migrations majeures, sans casse ni churn important
      Je suis curieux de savoir quelles ruptures vous avez rencontrées
    • J’ai du mal à être d’accord avec l’idée que ce ne serait pas beaucoup mieux que la version 3
      Les ajouts liés au rendu côté serveur ont été une grosse amélioration
    • Je suis passé de la version 4 à la 8 d’un coup, et il n’a fallu changer que 5 lignes de configuration
      J’aimerais qu’on arrête de se plaindre d’un problème qui n’existe pas. Je me demande même si vous utilisez vraiment ces outils
  • Il est vraiment difficile de suivre le frontend, ou plus largement l’écosystème JavaScript
    L’époque où je travaillais avec Laravel me manque, et j’aimerais que les postes utilisant Laravel soient mieux rémunérés

    • Je n’aurais pas envie de travailler avec Laravel Livewire et Alpine.js
      Mais il faut quand même continuer à suivre, et le résultat peut ne pas être très satisfaisant
    • En réalité, il n’est pas forcément nécessaire de suivre
      Ce qu’on utilisait avant fonctionne toujours
    • Je suis d’accord. Nous aussi, nous remplaçons lentement notre monolithe Laravel par des Lambda Python
      L’époque de Laravel 6 me manque vraiment
  • Comme l’approche a fonctionné avec uv, je pense qu’une équipe compétente pourrait faire la même chose en JavaScript

    • Je suis surpris que ce soit la seule mention de uv dans les commentaires
      Pour moi, c’est une comparaison très évidente, et cela me semble être une avancée très bienvenue pour l’écosystème JavaScript
      Grâce à uv, travailler avec Python est redevenu agréable
  • Je me demande si on peut aussi l’utiliser pour des builds Node, comme Vite, ou si c’est réservé au navigateur

    • Comme il utilise Vite, les contraintes sont les mêmes que celles de Vite
      Cela dit, j’utilise Vite sans problème sur un serveur NestJS avec vite-plugin-node
      Voir l’exemple : https://github.com/leosuncin/nest-vite-example/blob/master/v...
    • Voici ma configuration un peu sur mesure qui fonctionne bien quand on cible Node : https://pastebin.com/ynz4B5X0
      En gros, il suffit de faire semblant d’être une bibliothèque
    • J’utilise aussi Vite+ pour des CLI
      Dans ce cas, Vite n’est pas utilisé comme serveur de développement, mais le lint, le formatage, l’exécution des tâches et le cache sont toujours là
    • Chaque fois que quelqu’un propose de bundler du code Node, je me demande toujours quel est le cas d’usage
      Quel est l’avantage ? Est-ce pour l’obfuscation avec SEA ?
  • Je me demande si celui-ci est aussi associé à un abonnement
    Quand un nom comporte un « + », je me méfie et je pars naturellement du principe qu’il y a un abonnement derrière
    En regardant, ça ne semble pas être le cas

    • C’est aussi ce que j’ai pensé en premier
      Désormais, « $name+ » évoque fortement le « service d’abonnement de $name »
    • Il est indiqué : « entièrement open source sous licence MIT »
    • C’était peut-être l’idée au départ, mais il semble qu’ils aient ensuite été acqui-hirés
    • Le nom m’inquiète un peu
  • Je me demande si on peut l’utiliser avec Astro