SvelteKit 正在公開測試版
我們很樂意聽取您的回饋
時機成熟了。經過五個月和數百次的提交,我們終於邀請您試用 SvelteKit 的測試版。它尚未完成 — 還有一些已知的錯誤和幾個缺失的功能 — 但我們對它目前的進展感到非常滿意,並且迫不及待想讓您試用它。
開始一個新專案很容易
# create the project
mkdir my-app
cd my-app
npm init svelte@next
# install dependencies
npm install
# start dev server and open a browser tab
npm run dev -- --open
您可以在 svelte.dev/docs/kit 找到文件。如果您有一個想要遷移到 SvelteKit 的 Sapper 應用程式,您可以在 svelte.dev/docs/kit/migrating 找到說明。
原始碼可在 github.com/sveltejs/kit 取得。在我們完成整理工作之前,問題和提交請求已停用,但我們會在不久的將來使其完全開放。
等等,SvelteKit 是什麼?
把它想像成 Svelte 的 Next。它是一個使用 Svelte 建構應用程式的框架,具有伺服器端渲染、路由、JS 和 CSS 的程式碼分割、適用於不同無伺服器平台的轉接器等等。
如果您熟悉 Sapper,SvelteKit 是 Sapper 的後繼者。
從 Snowpack 到 Vite
在發佈影片之後,有一件事可能會讓人感到驚訝,我在影片中對 Snowpack 讚不絕口,那就是 SvelteKit 在底層使用了 Vite。當我們剛開始思考 SvelteKit 應該採取什麼形式時,我們嘗試了 Snowpack,結果一見鍾情。
Snowpack 創造了一個全新的開發工具類別。與其像過去幾年我們使用 webpack 和 Rollup 所做的那樣在開發過程中捆綁您的應用程式,不如說 Snowpack 是一個未捆綁的開發伺服器,它使用瀏覽器的原生 import
並即時執行 Svelte 元件等項目的 1:1 轉換。因此,您可以獲得快速啟動、簡單快取和即時熱模組重新載入。一旦您體驗了這種工作方式,您將對其他任何方式都感到不滿意。
Vite 與 Snowpack 屬於同一類別。雖然 Vite 1 不適合 SvelteKit — 它以 Vue 為中心(Vite 和 Vue 都是由 Evan You 建立的),並且使得伺服器端渲染變得困難 — Vite 2 與框架無關,且以 SSR 為核心設計。它還具有強大的功能,例如 CSS 程式碼分割,而我們以前必須自己實作這些功能。當我們並排評估這兩種技術時,我們不得不得出結論,Vite 更符合 SvelteKit 的需求,並且能為我們提供最佳機會來交付我們想像中的框架。
我們非常感謝 Snowpack 團隊,他們在開發初期提供了密切的合作,並為未來幾年網路開發將採取的方向指明了道路。它是一個很棒的工具,您絕對應該試用它。
以極限運動的方式進行自我測試
SvelteKit 仍處於測試階段,但這並不表示它沒有在生產環境中使用。
我的日常工作是在紐約時報,在過去的十二個月中,我大部分時間都在開發我們的 冠狀病毒追蹤器。它使用了紐約時報大部分圖形背後的工作流程的自訂版本,而該版本並非為大型多頁專案設計。當我們在去年年底決定為美國大約 3,000 個郡縣中的每一個都建立頁面時,我們很快意識到我們需要完全重新架構該專案。
即使它遠未準備好,SvelteKit 也是唯一符合我們特殊要求的框架。(任何在新聞編輯室工作過並與他們的 CMS 搏鬥過的人都會知道我在說什麼。)今天,它支援我們的郡縣風險頁面,我們也正在將現有的頁面遷移到 SvelteKit 應用程式中。
使用未完成的軟體來建構一個將被數百萬人看到的應用程式是具有風險的,一般而言我不建議這樣做。但它使我們能夠更快地開發應用程式,並使框架本身比原本更強大。
通往 1.0 的道路
您可以在我們的議題追蹤器上查看 1.0 里程碑的未解決問題列表。除了這些工作之外,我們還計劃升級文件並添加更多轉接器。
但最重要的是,我們需要您的回饋意見,以幫助我們製作出最佳的應用程式框架。試用一下,並告訴我們缺少哪些部分。
非常感謝所有儘管有「此處有惡龍」的警告和缺乏文件仍試用 SvelteKit 的人;您的幕後回饋非常寶貴。我特別要感謝 GrygrFlzr 的工作,當我們缺乏 Windows 支援時,他維護了非官方文件和添加 Windows 支援的分支;以及 dominikg 在 Svite 上的工作,為 SvelteKit 的 Vite 整合奠定了重要的基礎。他們兩人都已經加入團隊。