はじめに
ちょこちょこJavaScript周りは追っていたが、変化が目まぐるしく追いつけていなかった。
業務で使うに当たり、ざっくり把握し直したのでメモ。
言語周り
標準仕様: 実装状況はブラウザなど実行環境に依る
- CommonJS: requireで読み込むやつ
- ECMAScript: importで読み込むやつ。こっちが標準になっていく
型付け
- TypeScript: 結局JSに変換して実装するので後付けという立ち位置
実行環境周り
エンジン
- V8: Node.jsやChromeで使われている
- JavaScriptCore: WebkitなどAppleで使われている?
ランタイム
- Node.js
- Deno: npmの反省から生まれる。パッケージ管理機能込み。Rust製
- Bun: 早い。Node.jsの置き換えを狙う。Zig製
パッケージマネージャー: どれか一つを選ぶ。bundler的なやつ
- npm (+ npx): 大きなプロジェクトなどだと遅さが問題になる?
- yarn
- pnpm
バージョン管理
- Volta
- Proto: bunも使える
- nvm
- asdf: Node.js以外でもRubyなどで使用可能
パッケージ周り: gem的なやつ
フロントエンド
- React
- Next.js: React拡張
- Vue.js
- Nuxt.js: Vue.js拡張
- Svelte
- SvelteKit: Svelte拡張
- AngularJS
- Hono
- HonoX: Hono + Vite拡張
バックエンド
- Express.js
- Fastify: Express.jsより早い
- NestJS: Express.js or Fastify拡張。Angularを参考にしている
モジュールハンドラ: フロントエンド向けでファイルまとめたり
- Webpack: 古くなってきて、すごい後発が乱立してきた
- esbuild
- Vite
- Turbopack
テスト
- Jest
- Vitest: Jest互換
- Mocha
- Selemium: ブラウザベースのE2Eテストフレームワーク
- Cypress: 同上
他
- nodemon: ホットリロードしてくれる
- Forever: Express.jsのプロセスマネージャー。SystemD的な
- PM2: 同上