エコシステム
フロントをとりまくエコシステムについておさえる。フロントエンド開発においてやれることを認識する
フロントのプログラミング言語
基盤はJavaScriptの場合が多い。特に理由が無ければ、
JavaScript
に型を付けた
TypeScript
を利用してください(静的解析が出来るので強力です)
ランタイム
Node.js
ChromeのJavaScriptエンジン(v8)を元に、ブラウザ以外でも実行できるようにしたもの。
サーバや開発環境で使う環境は基本これ一択。
代替環境
- Bun, Deno
パッケージマネージャー
Node.js環境でのライブラリ(パッケージ)はnpmパッケージという形式になっている。
この使用するパッケージやそのバージョンを管理するもの。
-
npm
- Node.jsにデフォルトで付属する
- 機能不足・速度の遅さが目立つ
-
Yarn
- npm代替として開発されたもの
-
pnpm
- 高速性が売り(pnpm = performant npm)
- 社内演習ではこちらを利用しました
ビルドツール
-
webpack
- 2022年頃までの主流
- 現在は機能開発が終了し、バグ修正のみとなっている
- Next.jsで採用
-
Vite
- webpack以後の主流
- Next.js以外のほとんどのフレームワークが採用
過去のTech Talk資料
コンポーネントカタログ
-
Storybook
- 作成したコンポーネントを一覧できるようにするツール
- 一部テストも可能
Test
-
ユニットテスト
- Jest, Vitest
- VRT(Visual Regression Testing)
-
E2Eテスト
-
Playwright
: TypeScript(JavaScript) -
Cypress
: TypeScript(JavaScript) -
Selenium
: Python
-
CSS
コンポーネント単位のCSS
ビルド時にクラス名やdata属性を使って、コンポーネント単位に閉じたCSSを生成するもの
- Scoped CSS
- CSS Modules
CSS in JS
ほぼReact専用技術
CSSファイルを作らず、JavaScriptから全てのCSSを操作する
- Emotion
CSSフレームワーク
既存のCSSフレームワークを使う
- Tailwind CSS
-
bootstrap
- 読み込んでクラス名を付けてデザイン
デザイン管理
- Figma, Adobe XD