mcpField
M
moai-lang-javascript

moai-lang-javascript

github.com/modu-ai開発1.2k69 回インストール今日更新
リポジトリ

moai-lang-javascript について

最新の言語機能、Node.jsをはじめとするランタイム、フレームワーク、ツールを扱うJavaScript開発スキルです。JavaScriptアプリの構築、テスト、保守に利用できます。

主な機能

  1. 01ES2024+の構文とパターン
  2. 02Node.js、Deno、Bun
  3. 03Express、Fastify、Hono、Koa
  4. 04Vitest、Jest、Node.jsのテスト
  5. 05ESLint 9とBiomeの設定

活用シーン

  1. 01モダンなJavaScriptプロジェクトの作成
  2. 02Node.jsバックエンドAPIの開発
  3. 03テストとLintの設定
  4. 04ESMとCommonJSの相互運用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/modu-ai/moai-adk --skill moai-lang-javascript

インストール後、Claude Code で/moai-lang-javascriptを入力して読み込まれたか確認します。

同梱ファイルreferences/examples.mdreferences/reference.md

詳細

クイックリファレンス(30秒)

JavaScript ES2024+ 開発スペシャリスト — Node.js 22 LTS、複数のランタイム、最新のツールを活用したモダンな JavaScript。

自動トリガー:.js、.mjs、.cjs 拡張子のファイル、package.json、Node.js プロジェクト、JavaScript に関するディスカッション

主要スタック:

  • ES2024+:Set メソッド、Promise.withResolvers、不変配列、import 属性
  • Node.js 22 LTS:ネイティブ TypeScript、組み込み WebSocket、安定版の watch モード
  • ランタイム:Node.js 20 と 22 LTS、Deno 2.x、Bun 1.x
  • テスト:Vitest、Jest、Node.js テストランナー
  • リント:ESLint 9 のフラット設定、Biome
  • バンドラー:Vite、esbuild、Rollup
  • フレームワーク:Express、Fastify、Hono、Koa

クイックコマンド:

latest タグ、プロジェクト名、vanilla テンプレートを指定して npm create vite を使用し、Vite プロジェクトを作成します。npm init と、D フラグを指定した npm install を使用して、vitest、eslint、eslint/js でモダンなツールをセットアップします。node と watch フラグを使用して、Node.js の watch モードで実行します。experimental-strip-types フラグを指定した node を使用して、Node.js 22 以降で TypeScript を直接実行します。


実装ガイド(5分)

ES2024 の主な機能

Set の演算:

値 1、2、3、4 を含む setA と、値 3、4、5、6 を含む setB を作成します。setA.intersection に setB を渡して呼び出し、3 と 4 を含む Set を取得します。setA.union に setB を渡して呼び出し、1 から 6 までの値を含む Set を取得します。setA.difference に setB を渡して呼び出し、1 と 2 を含む Set を取得します。setA.symmetricDifference に setB を渡して呼び出し、1、2、5、6 を含む Set を取得します。isSubsetOf、isSupersetOf、isDisjointFrom メソッドを呼び出して、Set を比較します。

Promise.withResolvers:

Promise.withResolvers の呼び出しから promise、resolve、reject を分割代入する createDeferred 関数を作成します。これら3つのプロパティを持つオブジェクトを返します。deferred インスタンスを作成し、タイムアウトを設定して1000ミリ秒後に done で resolve し、promise を await して結果を取得します。

不変配列メソッド:

値 3、1、4、1、5 を含む original 配列を作成します。toSorted を呼び出して、元の配列を変更せずに新しいソート済み配列を取得します。toReversed を呼び出して、新しい逆順の配列を取得します。インデックス 1、削除数 2、挿入値 9 を指定して toSpliced を呼び出します。インデックス 2 の with メソッドに値 99 を指定して呼び出し、要素を置き換えた新しい配列を取得します。元の配列は変更されません。

Object.groupBy と Map.groupBy:

type と name プロパティを含むオブジェクトの items 配列を作成します。items と item.type を返す関数を指定して Object.groupBy を呼び出し、type ごとに配列をまとめたオブジェクトを取得します。同じ引数で Map.groupBy を呼び出し、type をキー、配列を値とする Map を取得します。

ES2025 の機能

JSON モジュールのインポート属性:

type 属性を json に設定して、config.json から config をインポートします。type 属性を css に設定して、styles.css から styles をインポートします。config.apiUrl プロパティにアクセスします。

RegExp.escape:

括弧などの特殊文字を含む userInput 文字列を作成します。RegExp.escape に userInput を渡して呼び出し、エスケープ済みのパターン文字列を取得します。安全なパターンで新しい RegExp を作成します。

Node.js 22 LTS の機能

組み込み WebSocket クライアント:

wss URL を指定して新しい WebSocket を作成します。open イベントのイベントリスナーを追加し、JSON 文字列化したメッセージを送信します。message イベントのイベントリスナーを追加し、event.data を JSON として解析して受信データをログに出力します。

ネイティブ TypeScript サポート(試験的):

experimental-strip-types フラグを指定した node を使用して、Node.js 22.6 以降で .ts ファイルを直接実行します。Node.js 22.18 以降では型のストリッピングがデフォルトで有効になっているため、ファイルを直接実行できます。

安定版の Watch モード:

node に watch フラグを指定して、ファイルの変更時に自動的に再起動します。watch-path フラグを複数回指定して、src や config などの特定のディレクトリを監視します。

権限モデル:

permission フラグを指定した node と、特定のパスを設定した allow-fs-read を使用して、ファイルシステムへのアクセスを制限します。allow-net フラグにドメイン名を指定して、ネットワークアクセスを制限します。

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

Express の従来型パターン:

express をインポートします。express 関数を呼び出してアプリを作成します。express.json ミドルウェアを使用します。api/users に GET エンドポイントを作成し、データベースクエリを await して、json で応答します。ユーザーを作成してステータス 201 と json で応答する POST エンドポイントを作成します。ポート 3000 で listen を呼び出し、サーバーが実行中であることをログに記録するコールバックを指定します。

Fastify の高パフォーマンスパターン:

Fastify をインポートします。logger を true に設定して Fastify インスタンスを作成します。body の type が object、required 配列に name と email が含まれ、properties に検証制約がある userSchema を定義します。schema オプションと、ユーザーを作成して code 201 で返す非同期ハンドラーを指定して、POST エンドポイントを作成します。port 3000 を指定して listen を呼び出します。

Hono のエッジファーストパターン:

Hono とミドルウェア関数をインポートします。app インスタンスを作成します。すべてのルートに logger ミドルウェアを使用します。api ルートには cors ミドルウェアを使用します。api/users に GET エンドポイントを作成し、データベースクエリを await して c.json を返します。必須フィールドを確認する validator ミドルウェアを含む POST エンドポイントを作成し、ユーザーを作成してステータス 201 の c.json を返します。app をデフォルトとしてエクスポートします。

Vitest でのテスト

設定:

defineConfig を使用して vitest.config.js を作成します。globals を true、environment を node に設定し、coverage では provider を v8、reporters を text、json、html に設定します。

テスト例:

テストファイルで、vitest から describe、it、expect、vi、beforeEach をインポートします。テスト対象の関数をインポートします。User Service の describe ブロックを作成します。beforeEach で vi.clearAllMocks を呼び出します。createUser を await し、結果が name と email を含むオブジェクトに一致し、id が定義されていることを検証する「ユーザーを作成する」it ブロックを作成します。createUser が Invalid email エラーで reject されることを検証する「無効なメールアドレスの場合にエラーをスローする」it ブロックを作成します。

ESLint 9 フラット設定

eslint.config.js を作成します。eslint/js から js を、globals をインポートします。js.configs.recommended に続けて、languageOptions に ecmaVersion 2025、sourceType module、globals.node と globals.es2025 をマージした globals を含むオブジェクトを配列としてエクスポートします。no-unused-vars は error と args ignore pattern、no-console は warn と許可するメソッド、prefer-const は error、no-var は error に設定します。

Biome オールインワン

スキーマ URL を含む biome.json を作成します。organizeImports を有効にします。linter を enabled にし、recommended ルールを設定します。formatter を enabled にし、indentStyle を space、indentWidth を 2 に設定します。javascript.formatter で quoteStyle を single、semicolons を always に設定します。


高度なパターン

高度な非同期パターン、モジュールシステムの詳細、パフォーマンス最適化、本番環境へのデプロイ設定を含む包括的なドキュメントについては、以下を参照してください。

  • reference.md:完全な API リファレンス、Context7 ライブラリマッピング、パッケージマネージャーの比較
  • examples.md:本番環境で使えるコード例、フルスタックパターン、テストテンプレート
Context7 との統合

Node.js のドキュメントには、context7 get library docs を nodejs/node と、esm modules async などのトピックを指定して使用します。Express には、expressjs/express と middleware routing を使用します。Fastify には、fastify/fastify と plugins hooks を使用します。Hono には、honojs/hono と middleware validators を使用します。Vitest には、vitest-dev/vitest と mocking coverage を使用します。


相性の良いツール

  • moai-lang-typescript:TypeScript との統合、JSDoc による型チェック
  • moai-domain-backend:API 設計、マイクロサービスアーキテクチャ
  • moai-domain-database:データベース統合、ORM パターン
  • moai-workflow-testing:DDD ワークフロー、テスト戦略
  • moai-foundation-quality:コード品質基準
  • moai-essentials-debug:JavaScript アプリケーションのデバッグ

クイックトラブルシューティング

モジュールシステムの問題:

package.json の type フィールドを確認してください。ESM では type module を使用し、import と export を使います。CommonJS では type commonjs を使用するか、フィールドを省略し、require と module.exports を使います。

Node.js のバージョン確認:

node のバージョンフラグを実行し、20.x または 22.x LTS であることを確認してください。npm のバージョンフラグを実行し、10.x 以降であることを確認してください。

よくある修正方法:

npm cache clean に force フラグを付けて、npm キャッシュをクリアしてください。node_modules と package-lock.json を削除してから、npm install を実行してください。npm config prefix をホームディレクトリ内の npm-global フォルダーに設定して、権限の問題を修正してください。

ESM と CommonJS の相互運用:

ESM から CommonJS をインポートするには、デフォルトエクスポートをインポートしてから、名前付きエクスポートを分割代入してください。CommonJS で動的インポートを行うには、await import を使い、default プロパティを分割代入してください。


最終更新日:2026-01-11 ステータス:有効(v1.2.0)

コメント