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
570
Viteはいいぞ/Vite is Good
dojineko
May 18, 2022
Tweet
Share
More Decks by dojineko
See All by dojineko
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
51
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
130
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
0
7.9k
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
330
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
590
もう俺には関係なくないTypeScript/Our TypeScript
dojineko
3
260
TypeScript ではじめる Clean Architecture / Let's start Clean Architecture with TypeScript
dojineko
2
2.7k
Hosting meets .NET / hosting-meets-dotnet
dojineko
0
560
TypeScript と ORM / ORM with TypeScript
dojineko
0
670
Other Decks in Programming
See All in Programming
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
130
slow types ってなんだろう?
karad
0
210
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
1
440
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
240
一文字エイリアスのすすめ
fujimura
0
200
TypeScriptで使いやすいOpenAPIの書き方
yukimochi_dwango
1
850
HonoのRPCで真の型安全が欲しかった
kosei28
0
110
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
250
WinActorの勉強を継続する方法
tamai_63
0
130
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
160
TypeScriptでもLLMアプリケーション開発 / LLM Application In Typescript
rkaga
5
1.3k
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.5k
Facilitating Awesome Meetings
lara
43
5.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Building an army of robots
kneath
300
41k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
YesSQL, Process and Tooling at Scale
rocio
165
13k
The Pragmatic Product Professional
lauravandoore
26
5.9k
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