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
750
Viteはいいぞ/Vite is Good
dojineko
May 18, 2022
Tweet
Share
More Decks by dojineko
See All by dojineko
2025-03-12 WebXRのいま(2025Q1) / About WebXR (2025Q1)
dojineko
0
58
iOSのWebViewとClipboardAPI / WebView and ClipboardAPI on iOS
dojineko
0
73
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
160
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
170
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
1
9.4k
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
440
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
960
もう俺には関係なくないTypeScript/Our TypeScript
dojineko
3
360
TypeScript ではじめる Clean Architecture / Let's start Clean Architecture with TypeScript
dojineko
2
3.3k
Other Decks in Programming
See All in Programming
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
2.1k
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
230
A Gopher's Guide to Vibe Coding
danicat
0
170
State of CSS 2025
benjaminkott
1
120
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
210
物語を動かす行動"量" #エンジニアニメ
konifar
14
5.5k
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
210
サイトを作ったらNFCタグキーホルダーを爆速で作れ!
yuukis
0
500
私の後悔をAWS DMSで解決した話
hiramax
4
140
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
210
令和最新版手のひらコンピュータ
koba789
14
8k
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
200
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Statistics for Hackers
jakevdp
799
220k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
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