タイトル: ライブラリ
本稿は JavaScript のライブラリに関する記事です。JavaScript で開発する際に、UI操作・DOM 操作・通信・状態管理などをまとめて提供してくれる外部ライブラリを扱います。
子ページからライブラリを選択してください。
本ページの子ページ
- jQuery — DOM 操作・イベント・Ajax を簡潔に書ける老舗ライブラリ
そもそもライブラリとは
ライブラリとは、ある特定の機能を持つプログラムを他のプログラムから呼び出して再利用できるよう部品化したもの、またそれを集めたファイル群です。自分でゼロから書く代わりに、すでに動作実績のある部品を組み合わせることで開発が速く、安全になります。
JavaScript の場合、ライブラリは npm / yarn / pnpm 等のパッケージマネージャ経由で取得し、import や でロードして使います。
JavaScript ライブラリの主な分類
| 分類 | 代表例 | 用途 |
|---|---|---|
| DOM 操作・ユーティリティ | jQuery、Lodash | DOM・配列・オブジェクトの便利ヘルパ |
| UI フレームワーク | React、Vue.js、Angular、Svelte | SPA・コンポーネント指向UI |
| 状態管理 | Redux、Zustand、Pinia、Recoil | アプリケーション状態の一元管理 |
| HTTP クライアント | Axios、Ky、標準 fetch | REST / GraphQL 呼び出し |
| ルーティング | React Router、Vue Router | SPA のページ遷移 |
| 日付処理 | day.js、date-fns、Luxon (Moment は保守モード) | 日時計算・整形 |
| フォーム / バリデーション | React Hook Form、Formik、Zod、Yup | 入力フォーム制御・型検証 |
| グラフ・可視化 | Chart.js、D3.js、ECharts、Recharts | グラフ・可視化 |
| アニメーション | GSAP、Anime.js、Framer Motion | UI モーション |
| テスト | Jest、Vitest、Cypress、Playwright | ユニット・E2E テスト |
| ビルド・バンドラ | Vite、webpack、esbuild、Rollup、Turbopack | モジュール束ね・最適化 |
| 型 | TypeScript | 静的型付け (本体は言語) |
取得方法 (npm / yarn / pnpm)
|
npm install jquery |
取得した依存は package.json に記録され、package-lock.json / yarn.lock / pnpm-lock.yaml でバージョンが固定されます。ロックファイルは必ず Git にコミットします。
「ライブラリ」と「フレームワーク」の違い
- ライブラリ: 自分のコードが主役。必要な箇所で部品を「呼び出す」
- フレームワーク: フレームワーク側が主役。ライフサイクルや構造に「自分のコードが組み込まれる」 (Inversion of Control)
- 境界は曖昧で、jQuery や Lodash はライブラリ寄り、Angular はフレームワーク寄り、React は「ライブラリ」と自称するがエコシステム込みではフレームワーク的に扱われる
選定のポイント
- 更新が止まっていないか — npm の
last publish、GitHub の Insights - 採用実績 — ダウンロード数、利用企業
- サイズ — bundle 解析ツール (bundlephobia 等) で重さを確認
- ライセンス — MIT / Apache 2.0 など商用利用条件
- セキュリティ —
npm auditや Snyk 等で脆弱性を定期チェック - TypeScript型定義 — 公式型/
@types/*パッケージの有無
注意点
- 同じ機能のライブラリを重複して入れない (Moment と day.js を両方入れない 等)
- 古いブラウザ対応が必要ならBabel + polyfillを併用
- 本番ビルドでは未使用コード除去 (Tree Shaking) が効くよう ESM 形式のライブラリを選ぶ
- CDN直リンクは便利だが、本番ではSRI (integrity) 属性付きか、自前ビルドに含める
関連
- 親カテゴリ: JavaScript
- 子ページ: jQuery