このガイドでは、「JavaScriptモダン開発 学習教材」を実践するための環境セットアップ手順を説明します。Node.jsとnpmのインストール方法、プロジェクトの初期化、サンプルコードの実行方法などについて解説します。
ターミナル(コマンドプロンプト)を開き、以下のコマンドを実行してインストールを確認します:
node -v # Node.jsのバージョンを表示
npm -v # npmのバージョンを表示
上記のコマンドでバージョン番号が表示されれば、インストールは成功しています。
Note: Node.jsのLTSバージョンを使用することをお勧めします。最新バージョンではなく、安定版(LTS)を選ぶことで、互換性の問題を避けられます。
任意のディレクトリにプロジェクトフォルダを作成し、npm initコマンドでプロジェクトを初期化します。
# プロジェクトディレクトリを作成して移動
mkdir js-modern-tutorial
cd js-modern-tutorial
# プロジェクトの初期化(対話形式でpackage.jsonを作成)
npm init
# または、デフォルト設定で初期化する場合
npm init -y
npm init
コマンドは対話形式でプロジェクト名やバージョンなどを尋ねてきますが、とりあえず学習用なのでnpm init -y
で全てデフォルト値で進めても構いません。
初期化が完了すると、プロジェクトディレクトリにpackage.json
ファイルが作成されます。このファイルにはプロジェクトの基本情報、依存パッケージのリスト、実行スクリプトなどが記録されます。
チュートリアルで使用する主要なパッケージをインストールします。
# 開発依存パッケージのインストール
npm install --save-dev vitest
npm install --save-dev typescript
npm install --save-dev ts-node
npm install --save-dev @types/node
インストールが完了すると、package.json
のdevDependencies
セクションに追加されたパッケージが表示され、node_modules
ディレクトリが作成されます。
Note: --save-dev
(または-D
)フラグは、開発時にのみ必要なパッケージを指定するためのものです。本番環境では使用されません。
以下のようにexample.js
ファイルを作成してみましょう:
// example.js
console.log("Hello, Modern JavaScript!");
// アロー関数のサンプル
const add = (a, b) => a + b;
console.log(add(5, 3)); // 8
このファイルをNode.jsで実行するには:
node example.js
Node.jsのREPL(Read-Eval-Print Loop)を使って対話形式でコードを試すこともできます:
node
REPLが起動したら、JavaScriptコードを直接入力して実行できます:
> const name = "JavaScript";
undefined
> console.log(`Hello, ${name}!`);
Hello, JavaScript!
undefined
> [1, 2, 3].map(x => x * 2)
[ 2, 4, 6 ]
終了するには .exit
または Ctrl+C を2回押します。
Tip: REPLは小さなコード片を素早くテストするのに最適です。複雑なコードはファイルに書いて実行しましょう。
モダンJavaScriptではES Modulesを使用してコードを分割します。以下のようにモジュールを作成して利用できます。
まず、package.json
ファイルに"type": "module"
を追加してES Modulesを有効にします:
{
"name": "js-modern-tutorial",
"version": "1.0.0",
"type": "module",
// 他の設定...
}
次に、モジュールを作成します:
// math.js - モジュールファイル
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
// デフォルトエクスポートの例
export default function subtract(a, b) {
return a - b;
}
このモジュールを別のファイルからインポートして使用します:
// app.js - メインファイル
import subtract, { PI, add, multiply } from './math.js';
console.log(`円周率: ${PI}`);
console.log(`5 + 3 = ${add(5, 3)}`);
console.log(`4 * 6 = ${multiply(4, 6)}`);
console.log(`10 - 7 = ${subtract(10, 7)}`);
実行するには:
node app.js
Note: CommonJSのrequire()
とES Modulesのimport
は混在させずに、どちらかに統一することをお勧めします。本チュートリアルではES Modulesを使用します。
TypeScriptを使用するための設定を行います。
以下のコマンドでTypeScriptの設定ファイルtsconfig.json
を生成します:
npx tsc --init
生成されたtsconfig.json
を以下のように編集すると良いでしょう:
{
"compilerOptions": {
"target": "ES2020",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"strict": true,
"outDir": "./dist",
"sourceMap": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.test.ts"]
}
TypeScriptファイルを作成してみましょう:
// src/example.ts
function greet(name: string): string {
return `Hello, ${name}!`;
}
console.log(greet("TypeScript"));
// 配列操作の例
const numbers: number[] = [1, 2, 3, 4, 5];
const doubled: number[] = numbers.map((n: number) => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
TypeScriptファイルを直接実行するにはts-node
を使います:
npx ts-node src/example.ts
コンパイルしてからJavaScriptとして実行する場合:
# TypeScriptをJavaScriptにコンパイル
npx tsc
# 生成されたJavaScriptを実行
node dist/example.js
Tip: tsc --watch
またはts-node-dev
を使用すると、ファイルの変更を監視して自動的に再コンパイル・再実行できます。
Vitestを使ってテストを書き、実行する手順を説明します。
{
"scripts": {
"test": "vitest run",
"test:watch": "vitest"
}
}
// src/utils.js または src/utils.ts (TypeScriptの場合)
export function sum(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
// tests/utils.test.js または tests/utils.test.ts (TypeScriptの場合)
import { expect, test } from 'vitest';
import { sum, multiply } from '../src/utils';
test('sum関数は2つの数値を加算する', () => {
expect(sum(1, 2)).toBe(3);
expect(sum(-1, 1)).toBe(0);
expect(sum(0, 0)).toBe(0);
});
test('multiply関数は2つの数値を乗算する', () => {
expect(multiply(2, 3)).toBe(6);
expect(multiply(0, 5)).toBe(0);
expect(multiply(-2, -3)).toBe(6);
});
# 一度だけテストを実行
npm test
# または、ファイル変更を監視して自動的にテストを再実行
npm run test:watch
Tip: テストファイルは*.test.js
や*.spec.js
という命名規則に従うと、Vitestが自動的に検出します。
効率的な開発のためのツールとして、Visual Studio Codeの使用をお勧めします。
Visual Studio Code(VS Code)は、Microsoft社が開発した無料の高機能コードエディタです。JavaScriptとTypeScript開発に特に最適化されており、以下の理由から強くお勧めします:
VS Codeの機能を拡張するために、以下の拡張機能をインストールすることをお勧めします:
Tip: 拡張機能をインストールするには、VS Codeの左側のサイドバーにある拡張機能アイコンをクリックし、検索ボックスに拡張機能名を入力します。またはCtrl+Shift+X
(macOSではCmd+Shift+X
)でも拡張機能メニューを開けます。
VS Codeの設定をカスタマイズするには、Ctrl+,
(macOSではCmd+,
)を押すか、メニューから「File」→「Preferences」→「Settings」を選択します。以下の設定が便利です:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.updateImportsOnFileMove.enabled": "always"
}
これらの設定により、ファイル保存時に自動的にコードがフォーマットされ、ESLintの問題が修正されます。
よくある問題とその解決策です。
Error: Cannot find module 'xxx'
解決策:
npm list xxx
)./
または../
から始まっているか)SyntaxError: Cannot use import statement outside a module
解決策:
package.json
に"type": "module"
を追加.mjs
を使用するrequire()
構文を使用するerror TS2307: Cannot find module 'xxx' or its corresponding type declarations.
解決策:
npm install --save-dev @types/xxx
tsconfig.json
の設定を確認(特にmoduleResolution
とesModuleInterop
)このセットアップガイドを参考に環境を整えることで、「JavaScriptモダン開発 学習教材」の内容を実際に試しながら学ぶことができます。何か問題があれば、公式ドキュメントやオンラインコミュニティで質問することをお勧めします。
Happy Coding!