1 पॉइंट द्वारा GN⁺ 4 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • हर प्रोजेक्ट के लिए वेब डेवलपमेंट टूल्स को अलग-अलग जोड़ने की झंझट कम करने के लिए Vite+ रनटाइम, पैकेज मैनेजर, बिल्ड·टेस्ट·चेक टूल्स को एक ही एंट्री पॉइंट में बांधता है
  • vp dev, vp check, vp test, vp build, vp pack, vp run को Vite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt से जोड़कर एकसमान कमांड सिस्टम देता है
  • अल्फा के बाद 12 से अधिक versions और 500 से अधिक PRs के दौरान caching, migration, organization templates, enterprise network support, और cross-platform stability में सुधार किया गया
  • सार्वजनिक repositories के आधार पर 1,300 से अधिक प्रोजेक्ट vite-plus पर निर्भर हैं, और Dify, critical, BlockNote, vinext, îles, Inkline, npmx जैसे प्रोजेक्ट पहले से इसका उपयोग कर रहे हैं
  • अभी यह 1.0 से पहले के चरण में है, इसलिए remote caching, GitLab CI/CD support, framework·plugin compatibility, migration, distribution channels, और diagnostics improvements अभी बाकी हैं

Vite+ का एकीकृत toolchain

  • Vite+ वेब डेवलपमेंट के लिए एक integrated toolchain है, जिसे बीटा के रूप में जारी किया गया है
  • यह एक ही एंट्री पॉइंट से runtime और package manager को मैनेज करता है, और कई frontend tools को एक tested stack के रूप में साथ देता है
  • यह MIT license वाला पूरी तरह open source है और किसी खास framework पर निर्भर नहीं है
  • इसे CLI, library, web app जैसे अलग-अलग वेब प्रोजेक्ट्स में इस्तेमाल किया जा सकता है
  • नया प्रोजेक्ट vp create से और मौजूदा प्रोजेक्ट vp migrate से शुरू किया जा सकता है

एक ही कमांड से development·check·build

  • Vite+ को इस तरह डिज़ाइन किया गया है कि हर repository के अलग टूल्स और commands सीखने के बजाय एक ही command system इस्तेमाल हो
  • मुख्य commands इस प्रकार हैं
    • vp dev: Vite 8 के आधार पर hot module replacement के साथ development server शुरू करता है
    • vp check: Oxfmt formatting, Oxlint linting, और type check को एक साथ चलाता है
    • vp test: Vitest आधारित unit tests चलाता है
    • vp build: Vite 8 के आधार पर production build करता है
    • vp pack: tsdown के आधार पर libraries को bundle करता है और best practices शामिल करता है
    • vp run: built-in monorepo-aware task runner से npm scripts या tasks चलाता है और intelligent caching का उपयोग करता है
  • जैसे-जैसे टीम और codebase बड़े होते हैं, इसके फायदे और बढ़ते हैं
    • tool versions aligned रहते हैं
    • settings साझा करना आसान होता है
    • नए contributors के setup steps कम हो जाते हैं
    • CI वही commands चलाता है जो local development में चलती हैं
  • यह उन developers के लिए है जो बार-बार खुद toolchain assemble नहीं करना चाहते, और उन teams के लिए जो पूरे प्रोजेक्ट में consistent configuration चाहती हैं
  • Vite+ Vite ecosystem को replace नहीं करता
    • Vite plugins, Vite plugins ही बने रहते हैं
    • प्रोजेक्ट अंदरूनी तौर पर अपनी पसंद का package manager इस्तेमाल करते रह सकते हैं
    • Vite+ एक integration layer देता है ताकि ये हिस्से एक toolchain की तरह साथ काम करें

अल्फा के बाद बीटा तक के बदलाव

  • Vite+ alpha के बाद वास्तविक प्रोजेक्ट्स पर टेस्टिंग के दौरान 12 से अधिक versions जारी हुए और 500 से अधिक PRs merge हुए
  • मुख्य सुधार इस प्रकार हैं
    • स्मार्ट caching: vp run automatic data tracking और Vite द्वारा रिपोर्ट किए गए metadata को जोड़ता है, जिससे inputs, outputs, और environment variables को हाथ से गिनाने की ज़रूरत बिना build cache सही तरह काम करता है
    • बेहतर migration: vp migrate अलग-अलग app configurations को संभालता है और agents के लिए migration prompts भी देता है
    • enterprise features: organization templates से teams के बीच settings standardize की जा सकती हैं, और proxy तथा custom CA-aware HTTP के कारण corporate proxy और firewall के पीछे भी vp चलाया जा सकता है
    • cross-platform: vp को इस तरह मजबूत किया गया है कि यह प्रमुख operating systems और shells पर बेहतर चले
    • refinement और improvements: vite-plus में 180 से अधिक fixes और improvements शामिल किए गए
  • विस्तृत बदलाव Vite+ release history में देखे जा सकते हैं

साथ में विकसित हुए आधारभूत tools

  • Vite+ बनते समय इसके आधारभूत tools में भी लगातार सुधार हुआ
  • alpha के बाद के प्रमुख बदलाव इस प्रकार हैं

वास्तविक adoption के उदाहरण

  • vite-plus पर निर्भर सार्वजनिक repositories की संख्या 1,300 से अधिक है, जिसमें private projects और global CLI installs शामिल नहीं हैं
  • Vite+ का उपयोग कई तरह के प्रोजेक्ट्स में हो रहा है
    • Dify: LLM apps बनाने के लिए open source platform
    • critical: Addy Osmani का framework-agnostic critical-path CSS tool
    • BlockNote: React के लिए block-based Notion-style rich text editor
    • vinext: Vite आधारित Next.js-compatible drop-in framework
    • zerobyte: TanStack और React से बना self-hosted users के लिए backup automation tool
    • îles: Vue के लिए partial hydration islands site generator
    • agentsview: Svelte से बना coding agents के लिए local-first session search·analysis tool
    • Inkline: Vue, React, Svelte, Angular, Solid, Qwik, Astro को support करने वाली UI component library
    • npmx: Nuxt आधारित open source npm registry browser
  • npmx के Daniel Roe ने कहा कि Vite+ development experience को तेज़ बनाए रखता है और CI व review process को भी तेज़ करता है

1.0 से पहले बाकी काम

  • Vite+ स्थिर है, लेकिन अभी पूरी तरह complete नहीं है; अगर integrated toolchain की ज़रूरतें पूरी होती हैं तो इसे अपनाने की सिफारिश की गई है
  • 1.0 तक जिन बिंदुओं पर ध्यान रहेगा, वे इस प्रकार हैं
    • vp run वाले Vite Task के लिए remote caching लागू करना
    • GitLab CI/CD के लिए setup-vp लाना
    • Vite frameworks और plugins के बीच compatibility बेहतर करना
    • और अधिक migration targets का support जोड़ना
    • official Homebrew formula जैसे distribution channels जोड़ना
    • documentation और diagnostics को और स्पष्ट बनाना
  • 1.0 release से पहले बाकी compatibility gaps कम करने के लिए community feedback को प्राथमिकता दी जाएगी

installation और migration

  • global vp command को macOS/Linux पर नीचे दिए गए command से install किया जा सकता है
curl -fsSL https://vite.plus | bash
  • Windows पर नीचे दिया गया PowerShell command इस्तेमाल किया जाता है
irm https://vite.plus/ps1 | iex
  • नया प्रोजेक्ट बनाने के लिए यह command इस्तेमाल करें
vp create
  • मौजूदा Vite प्रोजेक्ट में Vite+ आज़माने के लिए यह command इस्तेमाल करें
vp migrate
  • vp migrate बदलावों की योजना दिखाता है, लेकिन जटिल प्रोजेक्ट्स में बाद में manual काम की ज़रूरत पड़ सकती है
  • production प्रोजेक्ट में Vite+ अपनाने से पहले migration guide पढ़ना चाहिए
  • खास तौर पर मौजूदा प्रोजेक्ट migrate करने वाले developers, frameworks और plugins के लेखक, और बड़े repositories संभालने वाली teams से feedback मांगा गया है
  • संबंधित channels

1 टिप्पणियां

 
GN⁺ 4 시간 전
Hacker News की राय
  • मुझे Vite सच में पसंद है, लेकिन बाकी tools क्या हैं, इसका बिल्कुल पता नहीं
    थोड़ी देर सिर झुकाकर काम करता रहा और इतने में frontend tool ecosystem अचानक evolve हो चुका था; सोच रहा हूँ क्या यह boring but works stack की तरफ़ जाने वाला trend है

    • शामिल tools असल में काफ़ी बढ़िया हैं: vitest बहुत तेज़ test runner है, और jest या Node के built-in test runner समेत कई tools आज़माने के बाद भी मुझे यह पसंद है
      oxlint eslint का replacement है, config file format के साथ compatible है, और JavaScript में नहीं लिखा गया, इसलिए बहुत तेज़ है. मैंने biome भी इस्तेमाल किया है, लेकिन oxlint में rules ज़्यादा थे और eslint compatibility बेहतर थी
      oxfmt prettier का replacement है और JavaScript में नहीं लिखा गया, इसलिए तेज़ है, और rolldown rollup का replacement है, compatible भी है लेकिन काफ़ी तेज़. नए projects में मैं पहले से ही ज़्यादातर यही tools इस्तेमाल कर रहा हूँ
    • बाकी tools testing, bundling, linting और formatting के लिए हैं
      पहले अलग-अलग open source projects के tools को अलग config और update cycle के साथ इस्तेमाल करना पड़ता था, लेकिन अब इन्हें एक simple toolchain के रूप में handle किया जा रहा है
      Vite+ असल में वही “boring but works” stack है, और performance भी बेहतर है, config भी कम चाहिए
    • हाँ, दिशा बिल्कुल वही है
      eslint → oxlint, prettier → oxfmt की तरह Rust में फिर से लिखकर इन्हें तेज़ बनाया जा रहा है, और webpack → Vite पहले से ही काफ़ी broadly adopted है, इसलिए लोग उसे accept कर रहे हैं
      rolldown → tsdown TypeScript support जोड़ता है, और jest → vitest, Vite के साथ अच्छी तरह fit बैठता है
      मतलब पिछले 10 साल में स्थापित conventions को लेकर TypeScript support, Rust-based performance, और interoperability को एक साथ जोड़ा जा रहा है
    • मैंने Vite इस्तेमाल करने की कोशिश की, लेकिन esbuild के मुकाबले कोई बड़ा फ़ायदा महसूस नहीं हुआ, इसलिए दूर हो गया
      मैं Deno भी इस्तेमाल करता हूँ, तो जानना चाहता हूँ कि इसमें क्या उपयोगी है
    • यही आजकल का नया boring but works stack है
  • मुझे Vite, Vitest, Oxlint, Oxfmt पसंद हैं, और ज़्यादातर नए projects में पहले इन्हीं को देखता हूँ
    अच्छा होगा अगर इन लोगों के पास इतना funding हो कि कम-से-कम अगले 10 साल तक development जारी रख सकें
    किसी पुराने project को खोलकर Gulp, Grunt, webpack और दूसरे बेतरतीब tools का मिश्रण देखने से यह कहीं बेहतर है. मैंने ऐसा एक project नए stack पर migrate भी किया

    • मेरी जानकारी में VoidZero को Cloudflare ने acquire कर लिया है, इसलिए funding शायद समस्या नहीं होगी
      असली सवाल यह है कि क्या Cloudflare इन्हें Vite और Vite+ features बनाते रहने देगा. क्योंकि ये ऐसे features हैं जिनसे सिर्फ Cloudflare नहीं बल्कि सभी cloud platforms को फ़ायदा होता है
      https://blog.cloudflare.com/voidzero-joins-cloudflare/
    • Vite, ESLint, Prettier, TypeScript, React को सबको स्वाभाविक रूप से एक-दूसरे के साथ fit कराना मुश्किल हो सकता है
      खासकर अगर यह server-side rendering वाला full-stack setup हो; सिर्फ frontend देखें और TypeScript हटा दें तो यह काफ़ी आसान हो जाता है
      ज़्यादा complex cases में Vite+ मदद करता है या नहीं, यह देखना होगा
  • मुझे लगता है इस project को बेहतर नाम चाहिए
    यह वास्तव में Vite का बेहतर version कम और दूसरे tools का bundle ज़्यादा है, इसलिए काफ़ी confusing है
    उस समय Void Zero शायद Vite brand को monetize करना चाहता था, लेकिन अब Cloudflare द्वारा acquire होने के बाद शायद इसकी ज़रूरत नहीं रही

    • Vite में कई चीज़ें जोड़ी गई हैं, इसलिए “plus” के कई मतलब हो सकते हैं
  • मैं Vite, Vitest, Rolldown, tsdown, Oxlint, Oxfmt को बहुत संतोष के साथ इस्तेमाल कर रहा हूँ
    hard-fork किए गए packages बहुत हैं और अब वापस नहीं जाना चाहता. सब बस ठीक से काम करता है
    अगर नामों से confusion हो रहा है, तो Oxlint https://oxc.rs/docs/guide/usage/linter और Rolldown https://rolldown.rs/ से शुरू कर सकते हैं
    पिछले 6 महीनों में adopt करते समय tsconfig में बहुत ही कम बदलाव करने पड़े
    आम तौर पर, जब तक बात antd6, echart, rendering engine, geospatial libraries जैसी चीज़ों की न हो, मैं नया package लाकर Claude से उसे व्यवस्थित करवाता हूँ, फिर उसे सख़्त और एकरूप type system में ढालकर Vite, tsconfig, oxlint की पसंद के हिसाब से सेट करता हूँ
    नतीजतन library bloat और supply chain attack जैसी समस्याओं को लगातार track करने की ज़रूरत कम हो जाती है, और चीज़ें पढ़ना व ठीक करना आसान हो जाता है

  • 2022~2026 के 4 साल में Vite के major versions पाँच बार बढ़े: 3 → 4 → 5 → 6 → 7 → 8
    हर बार breaking changes आए और developers को migration करना पड़ा, जो बहुत ज़्यादा है. जबकि version 3 की तुलना में यह कोई नाटकीय सुधार भी नहीं है
    मैं इस स्तर के अनावश्यक बदलाव और लगातार confusion को बाकी dev toolchain तक नहीं ले जाना चाहता
    अगर Vite+ आखिर में सिर्फ़ existing tools को एक abstracted command-line interface में wrap करता है, तो इसका मतलब है कि मनचाहा behavior बनाने के लिए और ज़्यादा indirect layers से गुज़रना पड़ेगा, इसलिए मैं अभी आशावादी नहीं हूँ

    • मैंने सभी major migrations फ़ॉलो किए, और वे काफ़ी smooth थे
      कोई बड़ी समस्या याद नहीं आती, और हर बार ज़्यादातर यह बदलाव सही लगे
    • मैंने खुद migration किया, और वह भयानक नहीं था
      कुछ breaking changes थे, लेकिन वे काफ़ी isolated थे, और इन versions के बीच speed और improvements काफ़ी बड़े थे
    • हमने भी वे सभी major version migrations किए, लेकिन कोई breakage या बड़ा churn नहीं हुआ
      जानना चाहूँगा कि आपने कौन-सी breakage झेली
    • version 3 के मुकाबले बहुत सुधार नहीं हुआ, यह बात मानना मुश्किल है
      server-side rendering से जुड़ी features की additions बड़ा improvement थीं
    • मैंने 4 से 8 पर एक ही बार में upgrade किया और सिर्फ़ config की 5 lines बदलनी पड़ीं
      जो समस्या है ही नहीं, उस पर लगातार शिकायत करना बंद करना चाहिए. सच कहूँ तो यह भी शक है कि आप वास्तव में ये tools इस्तेमाल करते हैं या नहीं
  • frontend, या JavaScript ecosystem के साथ चलना वाकई बहुत मुश्किल है
    Laravel के साथ काम करने वाले दिन याद आते हैं, और काश Laravel इस्तेमाल करने वाली नौकरियां ज्यादा बेहतर भुगतान करतीं

    • आप शायद Laravel Livewire और Alpine.js के साथ काम नहीं करना चाहेंगे
      फिर भी साथ चलते रहना पड़ता है, और नतीजे भी शायद इतने संतोषजनक न हों
    • सच कहें तो हर हाल में साथ चलना ज़रूरी नहीं है
      जो पहले इस्तेमाल करते थे, वह अब भी काम करता है
    • पूरी तरह सहमत। हम भी अपने Laravel monolith को धीरे-धीरे Python Lambda से replace कर रहे हैं
      Laravel 6 के दिन सच में याद आते हैं
  • यह तरीका uv में काम कर चुका है, इसलिए अगर टीम सक्षम हो तो लगता है JavaScript में भी वही काम किया जा सकता है

    • हैरानी की बात है कि comments में uv की बात बस यहीं हो रही है
      मेरे लिए यह बहुत साफ तुलना का बिंदु है, और JavaScript ecosystem के लिए भी यह बहुत स्वागतयोग्य प्रगति लगती है
      uv की वजह से Python में काम करना फिर से मजेदार हो गया है
  • जानना चाहता हूँ कि क्या यह Vite की तरह Node builds में भी इस्तेमाल हो सकता है, या सिर्फ browser के लिए है

    • यह Vite इस्तेमाल करता है, इसलिए इसकी सीमाएँ भी Vite जैसी ही हैं
      लेकिन vite-plugin-node का इस्तेमाल करके मैं NestJS server पर Vite बिना किसी समस्या के चला रहा हूँ
      उदाहरण के लिए https://github.com/leosuncin/nest-vite-example/blob/master/v... देखें
    • Node को target करते समय अच्छी तरह काम करने वाला मेरा जादुई config यहाँ है: https://pastebin.com/ynz4B5X0
      मूल रूप से आपको बस ऐसा दिखाना है जैसे वह खुद एक library हो
    • मैं CLI के लिए भी Vite+ इस्तेमाल कर रहा हूँ
      इस मामले में मैं Vite को development server की तरह इस्तेमाल नहीं करता, लेकिन linting, formatting, task execution, और caching वैसे ही रहते हैं
    • जब भी कोई Node code bundling का प्रस्ताव रखता है, मैं हमेशा उसका use case जानना चाहता हूँ
      फायदा क्या है? क्या यह SEA में obfuscation के लिए है?
  • यह भी जानना चाहता हूँ कि क्या इसमें subscription जुड़ी हुई है
    नाम में "+" लगा हो तो मैं सतर्क हो जाता हूँ, और स्वाभाविक रूप से मान लेता हूँ कि उसके साथ subscription भी होगी
    देखकर तो ऐसा नहीं लगता

    • मेरा भी पहला ख़याल यही था
      अब “$name+” का मतलब मेरे दिमाग में लगभग पक्का हो चुका है: “$name की subscription service
    • इसमें लिखा है, “MIT license के तहत पूरी तरह open source”
    • हो सकता है शुरुआत में ऐसा प्लान रहा हो, लेकिन बाद में शायद acqui-hire हो गया
    • नाम थोड़ा चिंताजनक ज़रूर है
  • जानना चाहता हूँ कि क्या इसे Astro के साथ इस्तेमाल किया जा सकता है