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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
dojineko
May 18, 2022
Programming
820
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Viteはいいぞ/Vite is Good
dojineko
May 18, 2022
More Decks by dojineko
See All by dojineko
コスパの良いAIの選び方 / Surviving the AI Era on a Budget
dojineko
0
34
ミニPCを買ってみた話/The Story of Buying a Mini PC
dojineko
0
44
WebXRのいま(2025Q1) / About WebXR (2025Q1)
dojineko
0
750
iOSのWebViewとClipboardAPI / WebView and ClipboardAPI on iOS
dojineko
0
150
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
220
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
220
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
1
10k
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
490
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
1.1k
Other Decks in Programming
See All in Programming
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
250
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
1
170
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
Agentic UI
manfredsteyer
PRO
0
220
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.6k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
340
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
2
610
symfony/aiとlaravel/boost
77web
0
110
Creating Composable Callables in Contemporary C++
rollbear
0
180
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
570
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
320
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
270
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
400
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
30 Presentation Tips
portentint
PRO
1
340
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
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