アーカイブ

フロントエンド技術周辺の​アップデートから​振り返る​2025年

出典元: qiita.com

この記事はSchoo Advent Calendar 2025の1日目の記事になります。

こんにちは。技術戦略部門に所属するエンジニアの @okuto_oyama です。

Schooアドベントカレンダー最初の記事では、昨年も実施した、フロントエンド開発にまつわる周辺技術が今年どれだけアップデートされたかを見つつ、2025年を振り返ってみる内容をお送りいたします。

昨年に引き続き、以下のジャンルで括ろうと思っております。

ここに加え今年は「AIエージェントフレームワーク」についても触れていきます。

できる限り主要なものは収集していますが、あのライブラリ・フレームワークが入ってないじゃん!となった場合はすみません。

バージョン比較のレギュレーションは以下の通りです。

レギュレーション

それでは、いってみましょう。

フロントエンドフレームワーク

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Reactv18.3.1v19.2.0
Vue.jsv3.5.13v3.5.25
Angularv19.0.1v21.0.2
Sveltev5.3.0v5.45.3
Preactv10.25.0v10.28.0
Alpine.jsv3.14.5v3.15.2
Qwikv1.11.0v1.17.2
htmxv2.0.3v2.0.7
Litv3.2.1v3.3.1
Stencilv4.22.3v4.38.3

フロントエンドフレームワークでメジャーアップデートがあったものはReact、Angularになります。

Reactは昨年の12/5にv19へアップデートされました。今年リリースされたv19.2までの間で、アクションという非同期関数概念が追加、新たなHooks APIや<Activity>などの機能が追加されています。 Reactの最適化コンパイラでもあるReact Compilerのv1もリリースされました。

Angularはこれまで状態の変更検知に使用していたZone.jsを使用しないZonelessアーキテクチャを提供できるようになりました。v21からはSignalベースのフォーム機構、ヘッドレスでアクセシブルなコンポーネント「Angular Aria」が登場しました。

Vue.jsはVue Vapor Modeを搭載したv3.6が開発中です。

Svelteは非同期処理の制御ができるようになるAsynchronous Svelteが実験的機能として発表されました。

メタフレームワーク

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Next.jsv15.0.3v16.0.6
React Routerv7.0.1v7.9.6
Gatsbyv5.14.0v5.15.0
Nuxtv3.14.1592v4.2.1
SvelteKitv2.9.0v2.49.0
SolidStartv1.0.10v1.2.0
QwikCityv1.11.0v1.17.2
Redwoodv8.4.1v8.9.0
Astrov4.16.16v5.16.3
Docusaurusv3.6.3v3.9.2
VitePressv1.5.0v1.6.3
Lumev2.4.2v3.1.2
Analogv1.9.4v2.1.2

メタフレームワークでメジャーアップデートがあったものはNext.js、Nuxt、Astro、Lume、Analogになります。

Next.jsはv19よりuse cacheディレクティブを用いたキャッシュコンポーネント機能やDevTools MCPを搭載し、Turbopackがデフォルトのバンドラーとして採用されるようになりました。

Nuxtはv4よりディレクトリ構成を一新、useAsyncDatauseFetchの動作改善、Import maps機能の導入、Rolldownの実験的導入などがされるようになりました。

SvelteKitはv2.27よりRemote functionsというコンポーネントからサーバサイド上の関数を呼べる機能が追加されました。

Astroは昨年12/3にv5がリリースされました。アイランドアーキテクチャを実現するServer Islands、Content Collectionsより汎用的でビルドパフォーマンスの優れたContent Layer APIが導入されました。

VitePressは現在v2に向けての開発を進めています。

Lumeはv2から約1年半ぶりのメジャーアップデートがされました。JSXサポートはReact/Preactベースのプラグインを廃止し、SSXというライブラリに一本化されています。

Analogはv2になりAngularの新しいResources APIに対応したコンテンツ一覧やファイルを扱うContent Resources機能が追加されました。

Remixは方向性を一転し、これまでのReact Router構成のアプリケーションとは決別し、独自のフレームワーク像を構築していきます。

ランタイム

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Node.jsv23.3.0v25.2.1
Denov2.1.2v2.5.6
Bunv1.1.38v1.3.3

ランタイムでメジャーアップデートがあったものはNode.jsになります。

今年はNode.js v24はLTS(Long Term Support)になり、最新版としてv25が公開されました。v25からは、--allow-netオプションでネットワークアクセスへの制限ができるようになり、Node.jsがネイティブにTypeScriptを実行できる「Type Stripping」が安定版となりました。

Bunはv1.3からフルスタック開発機能を搭載しオールインワンの開発体験を提供しています。 また、今年からsosukesuzukiさんが入社され、内部で使用されているJavaScriptCoreの改善にコミットされています。

https://x.com/jarredsumner/status/1957406750329442771

CSS

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Tailwind CSSv3.14.5v4.1.17
UnoCSSv0.64.1v66.5.92
Panda CSSv0.48.0v1.6.0
styled-componentsv6.1.13v6.1.19
vanilla-extractv1.16.1v1.17.5
StyleXv0.9.3v0.17.1

CSSでメジャーアップデートがあったものはTailwind CSS、Panda CSSになります。

Tailwind CSSはv4より大きくアーキテクチャが変更され、JavaScript(TypeScript)で管理していたものがすべてCSSで管理されるように変更されました。 公式のUIライブラリであるTailwind UIが「Tailwind Plus」に刷新されました。

Panda CSSはv1よりcreateStyleContext関数が導入されました。これにより親子関係によってスタイルの変更をしやすくなりました。 v1.6.0からはcssgen--splittingフラグがつき、単一のstyle.cssではなくレイヤー・レシピごとに分割させる機能がつきました。

styled-componentsはメンテナンスモードへの移行が発表されました。

UIフレームワーク

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Chakra UIv3.2.2v3.30.0
Material UIv6.1.9v7.3.5
Ant Designv5.22.2v6.0.0
Nuxt UIv2.19.1v4.2.1
Angular Materialv19.0.1v21.0.1
daisyUIv4.4.24v5.5.5
Kuma UIv1.5.8v1.6.0
Yamada UIv1.7.0v2.0.5
Bootstrapv5.3.3v5.3.8

UIフレームワークでメジャーアップデートがあったものはMaterial UI、Ant Design、Nuxt UI、Angular Material、daisyUI、Yamada UIになります。

Material UIはv7よりESM対応が進み、CJSとESMをそれぞれサポートする(デュアルモード)ようになりました。

Ant Designはv6の発表と同時に、AIアプリケーション開発に特化したUIキットのAnt Design X 2.0のリリースも発表しました。

NuxtLabsがVercelにジョインした流れから、Nuxt UIはv4からNuxt UI Proも無償提供されるようになりました。

daisyUIはv5からわずかに残っていた依存関係をゼロにしてセキュリティリスクをなくしビルドサイズも削減することに成功しています。

昨年取り上げていたNextUIはHeroUIとしてリブランディングされ、テーマやコンポーネント単位で提供されるようになりました(1つのパッケージとして公開されていないため、今回は取り上げていません)。

日本人が作ったYamada UIはVercelのOpen Source Programにノミネートされました。

https://x.com/vercel/status/1993070637989216588?s=20

パッケージマネージャ

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
npmv10.9.1v11.6.4
yarn berryv4.5.3v4.12.0
pnpmv9.14.4v10.24.0

パッケージマネージャでメジャーアップデートがあったものはnpm、pnpmになります。

npmはv11.5からセキュアな公開フローをサポートするため、OIDCベースの認証が追加されました。

pnpmはv10よりpreinstallpostinstallのような依存パッケージのライフサイクルスクリプトがデフォルトで実行されなくなりました。v10.16からはminimumReleaseAgeが実装され、指定された期間でのバージョンのインストールを遅延させる機能が追加されました。

モバイル&デスクトップアプリ

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
React Nativev0.76.3v0.82.1
Expov52.0.0v54.0.0
Electronv33.2.1v39.2.4
Capacitorv6.2.0v7.4.4
Tauriv2.1.1v2.9.4
NativeScriptv8.8.6v9.0.4

モバイル&デスクトップアプリでメジャーアップデートがあったものはExpo、Electron、Capacitor、NativeScriptになります。

React Nativeはv0.82からはレガシーアーキテクチャが完全に無効化され、v0.76.2からの新しいアーキテクチャが正式に採用されました。Metaが開発するReact Nativeに最適化されたJavaScriptエンジンのHermesのv1が試験的に導入されました。

Expo v53では実験的にlibSQLサポートがはじまりました。v54では クロスプラットフォーム(Apple TV、macOS)対応の拡張がされています。

Capacitor v7では低コードプラットフォームのOutsystemsがCapacitor基盤に採用され、Cocoapodsの公式非推奨に伴い、Swift Package Managerへの移行を推進されるようになりました。

NativeScript v9ではESMネイティブ対応とバンドラへの選択肢としてViteの公式サポートが追加されました。

ビルド・バンドルツール

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Vitev6.0.1v7.2.6
SWCv1.9.3v1.15.3
esbuildv0.24.0v0.27.0
Parcelv2.13.2v2.16.1
Rollupv4.28.0v4.53.3
Webpackv5.96.1v5.103.0
Rspackv1.1.4v1.6.5
Rolldownv0.14.0v0.15.1

ビルド・バンドルツールでメジャーアップデートがあったものはViteになります。

Vite v7からはRolldownが導入可能、ブラウザターゲット判定をBaseline Widely Availableのバージョンへ変更し、Sass legacy APIが廃止されるようになりました。 ViteConf 2025にて統合開発ツールチェーンとしてのVite+(plus)の発表がありました。

Parcelはv2.14よりReact Server Componentsのベータ対応、MDXのファーストクラス対応をしました。v2.15からはPostHTMLベースから、Rust製の html5ever(Servo由来)のパーサーへ変更されました。

webpackはv5.100よりHMRのESMネイティブ対応、import deferの実験的導入がされました。

モノレポツール

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Lernav8.1.9v9.0.3
Turborepov2.3.3v2.6.1
Nxv20.1.4v22.1.3
Bazelv7.4.1v7.7.1
Rushv5.141.3v5.163.0
moonv1.30.2v1.41.7

モノレポツールでメジャーアップデートがあったものはLerna、Nxになります。

Turbopackは設定ファイルにコメントを記述できるJSONCフォーマットをサポート、@vercel/microfrontendsによりVercelとのmicrofrontends機能とも統合され、ローカルと本番環境との橋渡しが容易になりました。

Nxはv21より複数タスクのログを確認できるTerminal UIが導入されました。v22からはCIで失敗した内容を自動解析し、修正案を提示するSelf-Healing CI、configure-ai-agentsでCopilotやCursorなどのAIアシスタント設定を最適化するコマンドが追加されました。

バックエンドフレームワーク

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Expressv5.0.1v5.2.1
Koav2.15.3v3.1.1
Fastifyv5.1.0v5.6.2
NestJSv10.4.12v11.1.9
Honov4.6.12v4.10.7

バックエンドフレームワークでメジャーアップデートがあったものはKoa、NestJSになります。

KoaではWHATWG準拠のレスポンスボディ(ReadableStream、Blob、Response)がサポートされるようになりました。

NestJSはマイクロサービス化への柔軟性がより高まりました。NATS、Kafka、Redisなど公式サポートのトランスポーターが追加され、unwrapメソッドで基盤となるクライアントインスタンスへ直接アクセスできるようになりました。

import { NatsConnection } from 'nats';

const serviceRef = app.connectMicroservice({
  transport: Transport.NATS,
  options: {
    // NATS connection options here
  },
});
const connection = serviceRef.unwrap<NatsConnection>();

テストツール

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
Jestv29.7.0v30.2.0
Vitestv2.1.6v4.0.14
Mochav10.8.2v11.7.5
Playwrightv1.49.0v1.57.0
WebdriverIOv9.4.1v9.21.1
Cypressv13.16.0v15.7.0
Seleniumv4.27.0v4.38.0
Puppeteerv23.9.0v24.31.0
Storybookv8.4.6v10.1.2
Mock Service Workerv2.6.6v2.12.3

テストツールでメジャーアップデートがあったものはJest、Vitest、Mocha、Cypress、Puppeteer、Storybookになります。

Jestは過去最大規模の更新・変更が入りました。ESMとTypeScriptサポート強化やNode.jsのv21以下のサポート終了、using構文を活用する他新機能が追加されました。モジュール解決にはRust製のツール「unrs-resolver」を導入しパフォーマンスが向上しています。今後より頻繁なメジャーリリースをしていくことを目指すそうです。

Vitestはv4より実験的機能だったBrowser Modeが安定版になり、そこにVisual Regression Testing(VRT)のサポートが入るようになりました。

Cypressはv15より、アプリ操作を記録してテストを自動生成する「Cypress Studio」の機能が強化されました。v15.4.0よりフラグなしでデフォルトで使用できるようにもなりました。

Storybookはv9よりStorybookのテスト機能が強化されました。v10からはESMオンリーの構成となり、React依存がなくなるなど依存関係も大幅に削減しています。

リンター・フォーマッターツール

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
ESLintv9.16.0v9.39.1
Stylelintv16.11.0v16.26.1
Prettierv3.4.1v3.7.3
Biomev1.9.4v2.3.8
oxlintv0.14.0v1.31.0
oxfmt-v0.16.0

リンター・フォーマッターツールでメジャーアップデートがあったものはBiome、oxlintになります。

Biomeはv2からGritQLというクエリ言語を使ってリンタープラグインが作れるようになりました。v2.3からはVue.js、Svelte、Astroがフルサポートされました。

Oxcプロジェクトからはoxlintがv1としてメジャーアップデート、フォーマットツールとしてoxfmtが登場しました。

Prettierはv3.6より高速化された新たなCLI機能を--experimental-cliフラグより開放して使用できるようになりました。

型ツール

2024/12/1時点の最新バージョン2025/12/1時点の最新バージョン
TypeScriptv5.7.2v5.9.3
flowtypev0.255.0v0.291.0

型ツール関連でメジャーバージョンが上がったものはありませんでしたが、TypeScriptのバージョンについてはsemverで運用されていないため、マイナーバージョンアップに伴いいくつもの変更が入っています。

今年はTypeScriptのネイティブ実装をGoへ移植するプロジェクトが発表されました。

https://devblogs.microsoft.com/typescript/typescript-native-port/

AIエージェントフレームワーク

2025/12/1時点の最新バージョン
Vercel AI SDKv5.0.105
LangChain.jsv1.1.1
LlamaIndex.TSv0.12.0
VoltAgentv1.2.13
Mastrav0.24.6

AIエージェントを作成するためのフレームワークとしてTypeScript製のツールがいくつか登場してきています。PythonのものよりもWebアプリケーションとしての接続として同じ技術スタックが使えることは1つの利点と言えそうです。

Vercel AI SDKはエージェント昨日の開発が非常に簡易的でわかりやすく、LlamaIndex.TSはRAG重視型のイベント駆動フローを採用、LangChain.jsはLangChainにまつわるエコシステムとしての成熟度が高く、VoltAgentはLLM可視化プラットフォームを提供しており、MastraはWeb開発者としての開発体験を重視したフレームワークとされています。 UIライブラリやメタフレームワークのように、それぞれの機能要件に合わせて向いているものを扱うのが良さそうです。

ちなみにMastraはGatsbyJSの開発者でもある2人によって作成されたAIエージェントフレームワークです3

おわりに - 昨年の予測振り返りと来年の予測

前回の記事では以下のような2025年の展望を予想しました。

それぞれについてを振り返ってみましょう。

まず脱仮想DOMはVue.jsのVue Vapor Modeが次バージョンへの搭載が予定され、Reactは脱仮想DOMではないですがReact Compilerの登場によってパフォーマンスを考慮しつつコンパイラ内で隠蔽する方向へ進化しています。

クライアントとサーバーとの境界についてはNext.jsでのuse cacheディレクティブによる指定、SvelteKitのRemote fucntions、Astro Server Islandsなど、よりシームレスにサーバー機能がコンポーネントへ統合された動きがありました。

Vite v7でのRolldown採用、oxlint v1リリースなど、Oxc/Rolldown基盤がインフラとして実用段階に入っており、さらにVite Plusの統合型ツールチェインの発表など、Viteエコシステムを中心とした活発的な動きが見られました。

昨年から引き続きRust製ツールは順調に発達し、TypeScriptはGo移植へ転換するなどJavaScript実装に寄らないパフォーマンスを意識したフロントエンドエコシステムへの参入は見られています。

いずれの予想も大きなズレはなかったかと思っていますが、これに加えて生成AIとフロントエンドのエコシステムの融合や、サプライチェーン攻撃といったセキュリティにまつわる問題がより顕著にみられる1年になったなと振り返ってみて気付かされました。

フルスタックフレームワークやUIライブラリにはMCPサーバーが導入され、マイグレーションやライブラリの使い方をそこからAIエージェントに学習させて高品質なアウトプットができるような仕組みを作っています。HonoでもHono CLIが発表され、CLIでの操作したり情報を得られるようにしたAIフレンドリーな仕組みが実装されてきています。 今後もこの流れはフロントエンドのエコシステム上で必要なことになりそうです。

npm上でのサプライチェーン攻撃も顕著な年になりました。直接的には使ってなくても依存関係の都合上で悪意のある攻撃を受けてしまう危険性については、いきなり顕在化した問題でなくかつてからあった懸念点ではありましたが、あまりの深刻さにこれまで牧歌的な開発が許されていた雰囲気を一変させてしまいました。

その影響もあってか、OIDCを活用したnpm Trusted Publishingが登場したり、pnpmではminimumReleaseAge機能が追加されるなど、パッケージマネージャー側での自衛機能が強化されました。AIエージェントを活用することが当たり前になってきた中で、より安全に使うためにサンドボックスやコンテナ上で動かす必要性も出ているのでこうした安全性へシフトしていく動きも引き続き注目されそうです。


パフォーマンスで取り上げたTypeScriptのGo移植についても気になっている部分があります。それは内部のCompiler APIが使えなくなることです4。 この影響は特にts-morphといったCompiler APIを活用するプラグイン側に大きな影響があるためTypeScriptのプラグインやライブラリが一部追従できなくなる可能性も考えられます。特にVolar.jsにおいてはTypeScriptのソースコードを動的に書き換えることでtscにはない拡張機能やプラグインを注入させる仕組みを取り入れていたりします。

let tsc = (readFileSync as any)(...args) as string;

// add allow extensions
const extsText = extensions.map(ext => `"${ext}"`).join(', ');
tsc = replace(tsc, /supportedTSExtensions = .*(?=;)/, s => s + `.concat([[${extsText}]])`);
tsc = replace(tsc, /supportedJSExtensions = .*(?=;)/, s => s + `.concat([[${extsText}]])`);
tsc = replace(tsc, /allSupportedExtensions = .*(?=;)/, s => s + `.concat([[${extsText}]])`);

// proxy createProgram
tsc = replace(tsc, /function createProgram\(.+\) {/, s =>
  `var createProgram = require(${JSON.stringify(proxyApiPath)}).proxyCreateProgram(`
  + [
    `new Proxy({}, { get(_target, p, _receiver) { return eval(p); } } )`,
    `_createProgram`,
    `require(${JSON.stringify(__filename)}).getLanguagePlugins`,
  ].join(', ')
  + `);\n`
  + s.replace('createProgram', '_createProgram')
);

return tsc;

https://github.com/volarjs/volar.js/blob/f17c19f712651acde33cc2171a112e64db0b460e/packages/typescript/lib/quickstart/runTsc.ts#L20-L40

以上、今年の振り返りをしてみて、来年以降のフロントエンド技術動向はどうなるかを予測してみました。来年以降もフロントエンドのエコシステムに大きな変動は来ない(生成AIのようなゲームチェンジャーが登場しない限り)と思っているのでその延長線上のものになります。

というわけで今日までの動向を振り返ってみましたが、今年の残りにもいくつかの変更やリリースがあるかもしれません。引き続きフロントエンド技術周辺を見守っていこうと思います。

参考記事

脚注

  1. とあるフロントエンドフレームワークを基にアプリケーションのレンダリングと配信に重点を置いたフレームワークと定義

  2. 大幅にバージョンが上がっているように見えますが、これは作者のAnthony Fuが独自のセマンティクスバージョン管理(Epoch Semantic Versioning)をし始めたものです。これに沿ったセマンティックバージョンとして扱っているためメジャーバージョン扱いではないと判断しています。

  3. 【AIエージェント開発の最前線】Mastra創業者が語る「Train in Python, Ship in TypeScript」の真意【AI探求ラボ Vol.09】

  4. 詳細はTypeScript の Go 移植に備えて知っておくべきことの「Compiler API が使えなくなる?」を確認ください。

アーカイブ記事のため、内容に関する更新依頼は受け付けておりませんが、誤字や脱字などありましたらご連絡ください。

この記事に関する修正依頼
トップへ戻る