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
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kouki.miura
August 31, 2026
Programming
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
TypeScript7をVueプロジェクトで使いたいけどどうすれば良いか?一部だけでも使えないか?というLT発表の資料です。
kouki.miura
August 31, 2026
More Decks by kouki.miura
See All by kouki.miura
VueSapporo#4
koukimiura
0
35
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
38
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
47
Vue3.6.0-rc_CHANGELOG読み合わせ
koukimiura
0
42
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
74
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
91
フルスタックTypeScript入門 ~Hono RPCとZodで実現する型共有~
koukimiura
0
68
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
160
ReactとVueは仲良くできるのか?
koukimiura
0
51
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
370
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
[KotlinConf Extended South Korea 2026] KotlinConf 2026 발표자 후기
wisemuji
0
100
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
860
Press start. Python's next generation.
willingc
PRO
3
310
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
420
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.8k
Oxlintはいいぞ(続)
yug1224
1
550
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
320
Designing for Performance
lara
611
70k
Skip the Path - Find Your Career Trail
mkilby
1
220
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Tell your own story through comics
letsgokoyo
1
1.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The browser strikes back
jonoalderson
0
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
Transcript
2026.08.31 / 【非公式】Vue Fes Japan 2026 機運醸成勉強会 by hokkaido.js VueプロジェクトをTypeScript7に対応させる
- Side-by-Side戦略による一部高速化 - 三浦 恒樹 (MIURA KOUKI) / 医療ITエンジニア
自己紹介 - ドゥウェル株式会社 に所属(マネージャー) 医療ITエンジニア / 診療情報管理士 / 上級医療情報技師 /
医用画像情報専門技師 TypeScript / Vue.js / Node.js / Java / C# / PHP - 3兄弟の父、休日は習い事の送り迎えとか... - 参加している勉強会 札幌PHP勉強会 ゆるWeb勉強会 JBUG札幌 JavaDO えびてく クラメソ札幌IT勉強会(仮) AWS初心者LT会in札幌 札幌すごいAI会 札幌IT石狩鍋 hokkaido.js 函館本線沿線勉強会 JPUG-Ezo VueSapporo さっぽろ医療IT勉強会 ※運営 - コーディングBGM ラックライフ BLUE ENCOUNT SHANK Dizzy Sun Fist - Naru, 名前を呼ぶよ, 初めの一歩, 変わらない空 - Survivor, ポラリス
話すこと 01 02 03 TypeScript 7とは何か Vueで何が起きたか Side-by-Sideで共存させる Goで書き直されたNative Compiler
vue-tscが動かなくなる理由 変えられるところから変える
今日話したいこと TypeScript 7、速いらしい。 Vueプロジェクトも TypeScript 7に上げればいいのでは? なぜ? 実際にやってみると…… ERR_PACKAGE_PATH_NOT_EXPORTED そして、どうする?
TypeScript 7とは? 「TypeScriptの高速化」ではなく「TypeScriptの実装基盤の変更」 TypeScript 6.0 まで TypeScript 7 TypeScript compiler
Compiler Language Service Language Service JavaScript implementation Native implementation JavaScript Go TypeScript 7 は Go で実装された Native TypeScript compiler / language service
どれくらい速い? TypeScript公式ブログでの説明 高速化される処理 10x faster native port of TypeScript 出典:TypeScript
7.0 公式ブログ • 実際には処理によって差がある(すべてが10倍になるわけではない) • 大規模プロジェクトほど恩恵を受けやすい Parsing Type checking Emit Language Server
ただし、Vueには問題がある TypeScript 7 は、まだ安定した Programmatic API を提供していない 普通のTypeScriptプロジェクト Vueプロジェクト .vue
tsc Vue Language Tools Virtual TypeScript TypeScript 7 TypeScript これで済む Vue toolingがTypeScript compilerを 「プログラムから利用」している
実際にTypeScript 7へ上げてみる { "devDependencies": { "typescript": "^7.0.2", "vue-tsc": "^3.3.11" }
} $ pnpm type-check すると…… やったこと • typescript を 7系に更新 • vue-tsc は最新(3.3.11) • 型チェックを実行
ERROR Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: ポイント Package subpath './lib/tsc' is not defined
by "exports" in .../typescript/package.json 型チェックで エラーになった のではない スタックトレースには… そもそも起動していない resolveExports › resolveTscPath › vue-tsc/index.js
何が起きているのか? vue-tsc は単純に tsc を実行しているわけではない vue-tsc がやっていること 1 .vue を解析する
2 Virtual TS code を生成する 3 TypeScript compiler を利用する TypeScript API TypeScript 7 では typescript/lib/tsc のような内部実装への依存が、そのま ま成立しない vue-tsc TypeScript 7 ERR_PACKAGE_PATH_NOT_EXPORTED
ここでTypeScript公式の戦略を見る TypeScript 7 に用意された移行戦略 Side-by-Side TypeScript 7 + TypeScript 6
2つのTypeScriptを、同時にインストールして使い分ける
なぜ2つ必要なのか? 役割分担で考える TypeScript 7 TypeScript 6 tsc tsc 高速な Native
Compiler 既存の Programmatic API コンパイル・型チェックを速く ツールがAPI経由で使う Compilerとしては 7 を使いたい。 でも、まだ 6 のAPIに依存するツールがある。 この状態を、公式にサポートする
npm alias による Dual Install TypeScript公式の例 { "devDependencies": { "@typescript/native":
"npm:typescript@^7.0.2", "typescript": "npm:@typescript/typescript6@^6.0.2" } こう解決される @typescript/native } TypeScript 7 → tsc typescript npm alias を使って、パッケージ名と中身をずらす。 TypeScript 6 → tsc6 「typescript」という名前で 6 を、別名で 7 をインストールする。 2つのTypeScriptを別名で共存させる
Vueの場合はどうする? ここが今回の本題 Vue Language Tools 側も、この問題に対応している TypeScript 7 + @typescript/typescript6
を前提とした Dual-Install 対応が進められている PR #6123 vuejs/language-tools github.com/vuejs/language-tools/pull/6123
Vue Language Tools の Dual-Install Vue Project vue-tsc tsc TypeScript
6 API TypeScript 7 Vue Language Tools Native Compiler 型チェックはこちら ここが速くなる 「全部 TypeScript 7 にする」のではなく、「TypeScript 7 を使えるところから使う」
Side-by-Sideの本質 単なる「一時的な回避策」ではない TypeScript 7 は 大きなアーキテクチャ変更 TypeScript 7 Compiler 直接利用できるツール
7 Language Service 6 API に依存するツール 6 Programmatic API → 段階的な移行が可能になる アーキテクチャが変わったからこそ、共存が「公式の移行パス」になっている
では、何が高速化される? Vueプロジェクト全体が 「全部 10x faster!」になるわけではない TypeScript 7 を利用できる経路から、 段階的に高速化する。 Vue
project vue-tsc Vue Language Tools → TS 6 API そのまま tsc TypeScript 7 → Native Compiler 高速化 other tooling TS 6 / TS 7 ツール次第 ※ vue-tsc 経由の型チェックは TypeScript 6 のままなので、そこは速くならない
今回のエラーから学べること 「vue-tscが古い」で終わらせない TypeScript 7 Vue は SFC を扱う Vue SFC
API境界が変わった Vue Language Tools Toolingが内部APIに依存していた Virtual TypeScript TypeScript Vue Language Toolsとの互換性問題 「TypeScriptそのもの」だけでは完結しない Tooling Architecture になっている コンパイラと Tooling の依存関係を見るきっかけになる
まとめ TypeScript 7 しかし そこで • GoベースのNative Compiler • •
Side-by-Side(6と7の共存) • 大幅なパフォーマンス改善 安定したProgrammatic APIがま だない • npm aliasによるDual Install • Vue Language Toolsは compiler APIを使う • Vue Language Toolsも対応中 • 単純な「7への置き換え」では動かな い • Compiler / Language Service の刷新 TypeScript 7 と TypeScript 6 を共存させる TypeScript 7 + TypeScript 6
References 1 TypeScript 7.0 devblogs.microsoft.com/typescript/announcing-typescript-7-0/ 2 Running Side-by-Side with TypeScript
6.0 devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0 3 Vue Language Tools #6123 github.com/vuejs/language-tools/pull/6123 4 Vue Language Tools CHANGELOG github.com/vuejs/language-tools/blob/master/CHANGELOG.md
ご清聴ありがとうございました。