Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Viteはいいぞ/Vite is Good
Search
dojineko
May 18, 2022
Programming
1
700
Viteはいいぞ/Vite is Good
dojineko
May 18, 2022
Tweet
Share
More Decks by dojineko
See All by dojineko
iOSのWebViewとClipboardAPI / WebView and ClipboardAPI on iOS
dojineko
0
35
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
120
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
150
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
0
8.8k
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
380
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
860
もう俺には関係なくないTypeScript/Our TypeScript
dojineko
3
320
TypeScript ではじめる Clean Architecture / Let's start Clean Architecture with TypeScript
dojineko
2
3.2k
Hosting meets .NET / hosting-meets-dotnet
dojineko
0
660
Other Decks in Programming
See All in Programming
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
170
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
170
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
160
Datadog Workflow Automation で圧倒的価値提供
showwin
1
260
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
250
バッチを作らなきゃとなったときに考えること
irof
2
540
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
Unity Android XR入門
sakutama_11
0
180
CloudNativePGを布教したい
nnaka2992
0
120
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
1
220
Jakarta EE meets AI
ivargrimstad
0
480
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
280
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Speed Design
sergeychernyshev
27
810
GraphQLとの向き合い方2022年版
quramy
44
14k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
For a Future-Friendly Web
brad_frost
176
9.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Adopting Sorbet at Scale
ufuk
75
9.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Building an army of robots
kneath
303
45k
Transcript
Viteはいいぞ 2022-05-18 FukuokaJS @dojineko
どじねこ @dojineko GMOペパボ / よろず屋
今日お話しする内容
もくじ ➔ Viteってなぁに? ➔ テストで活躍するVitest ➔ Node.jsアプリが作れるvite-node ➔ まとめ
Viteってなぁに?
まず「Vite」ってなぁに? • Vueの創始者Evan You氏開発の ”次世代のフロントエンドツール” ◦ 「ヴィート」と読みます (フランス語の「高速」に由来) • 高速な開発サーバーやHMR(Hot
Module Replacement)をサポート • RollupなどをベースとしておりネイティブESMで処理される • TypeScriptを標準でサポートする • ほとんどの場合には細かい設定は不要 • VueだけでなくReactやSvelte、VanillaJSなどもサポート • Nuxt.js 3 のビルドシステムとして実験的に採用された
~ 基本使用時のVite周りのざっくりとした関係図 ~ TSX CSS PNG HTML TS エントリに なるHTML
ビルド結果
Webpackで試される設定パズル力の例 .ts を babel-loaderで 処理する設定 webpackで処理する 対象に ts と js
を設定 出力先の設定
ViteでReactを使用する例 react を使う宣言だけ!
ViteでVueを使用する例 vue を使う宣言だけ!
設定がとにかくカンタン!
公式サイトは日本語対応!ブラウザ or1コマンドからはじめられる! 〜 https://ja.vitejs.dev/ 〜
• Viteプラグインの vite-plugin-node を使えば ViteのSSR機構のみを使ってAPIサーバーを開発できる ◦ https://www.npmjs.com/package/vite-plugin-node • ViteがHMRに対応しているので、 開発中には実装の変更はシームレスに反映される
• Express や Koa、Nest、fastify などの メジャーなフレームワークに対応 • フロントエンド部分がいらないよーという場合は便利 【余談】ViteでWebAPIをつくりたいときは?
テストで使えるVitest
Vitestってなあに? • Viteのビルドスタックを使ったテストフレームワーク • テストの世界にもViteの高速なビルドスタックを持ち込める ◦ もちろんESMにも標準対応 • Jestとある程度APIに互換性があり テストファイルの大きな書き換えの必要がない
• やはり設定はほとんどいらない ◦ TypeScriptで書いたテストもそのまま実行できる ◦ jest.config.json 業から解放される
Jestでも試される設定パズル力の例 TSでテストを書きたい けどたくさんの設定を 正しく書くことは難しい
細かい設定が必要なければ vite.config.ts も不要 Vitest向けのViteの設定例 かんたんだね!
expect などの テスト用関数の 参照先を変えればOK テストコードの構造 は大きな変化がない JestのテストをVitestに書き換えた例
テストが約50%高速になった! 実行時間が 約半分に! JestからVitestに移行した事例
Vitest公式でJestからの移行ガイドが用意されています ~ https://vitest.dev/guide/migration.html ~
Node.jsアプリが作れるvite-node
vite-nodeってなあに? • Vitestのコアコンポーネントの一つ ◦ Vitestが更新され続ける間は安泰(かも?) • Viteの高速なビルドスタックを使ってNode.jsアプリを作れる ◦ もちろんESMにも標準対応 •
TypeScriptで書いたコードをそのまま実行できる ◦ ts-node-esm のように使える • Viteの便利な部分をフロントエンドだけではなく、 サーバーアプリやCLIアプリの作成でも活用できる
vite-node を使ったCLIアプリの作成手法をご紹介しています! 〜 vite-nodeでNode.js製のCLIアプリを作る 〜
まとめ
まとめ • ViteはRollupなどをベースとした次世代のビルドシステム • ほとんどの場合に設定がいらない! (ほぼゼロコンフィグ) ◦ 設定ファイルのメンテナンスからの解放 • TypeScriptがすぐかけて実行できる
◦ 何かと面倒な初期設定をズバズバスキップ • 対応パッケージを使用すると、フロントエンド以外でも大活躍 ◦ vitest: 超高速でESMに対応したテストランナー! ◦ vite-node: Node.jsアプリの開発に!
Viteでもっと手軽な開発を!
None