Chapter 14: 開発環境の構築
プログラミング言語とパッケージマネージャのセットアップ
Chapter 14: 開発環境の構築
プログラミングを始める前に、開発環境を整える必要があります。開発環境とは「コードを書いて実行するための道具一式」です。この章では Node.js と Python を中心に、現場でよく使われるセットアップ方法を学びます。
14.1 プログラミング言語のインストール
Node.js とは
Node.js は JavaScript をサーバーサイドで実行する環境です。もともとブラウザ上でしか動かなかった JavaScript が、Node.js の登場によってサーバーでも使えるようになりました。
現在、Web開発の多くのツール(Webpack、Vite、ESLint など)がNode.jsで動いています。フロントエンド開発をするなら必須の環境です。
Python とは
Python はシンプルな文法で読みやすい汎用プログラミング言語です。データ分析・機械学習・Webバックエンド・自動化スクリプトなど幅広い用途で使われています。
しかし、ここで問題があります。プロジェクトによって必要なバージョンが異なります。
プロジェクトA: Node.js 16 が必要
プロジェクトB: Node.js 20 が必要
プロジェクトC: Python 3.9 が必要
プロジェクトD: Python 3.12 が必要1台のPCで複数バージョンを扱うにはバージョン管理ツールが必要です。
14.2 パッケージマネージャ
npm(Node Package Manager)
npm は Node.js に付属するパッケージ管理ツールです。外部ライブラリのインストール・管理を担当します。
# パッケージのインストール
npm install express
# 開発環境のみで使うパッケージ
npm install --save-dev eslint
# グローバルにインストール
npm install -g typescript
# package.json に記載された全パッケージをインストール
npm install
# パッケージのアップデート
npm update
# インストール済みパッケージの一覧
npm listpackage.json は Node.js プロジェクトの設定ファイルです:
{
"name": "my-project",
"version": "1.0.0",
"description": "サンプルプロジェクト",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "webpack"
},
"dependencies": {
"express": "^4.18.0",
"axios": "^1.6.0"
},
"devDependencies": {
"jest": "^29.0.0",
"eslint": "^8.0.0"
}
}# package.json に定義したスクリプトを実行
npm run dev
npm run build
npm testpip(Python のパッケージマネージャ)
# パッケージのインストール
pip install requests
# requirements.txt からまとめてインストール
pip install -r requirements.txt
# インストール済みパッケージを requirements.txt に書き出す
pip freeze > requirements.txt
# パッケージのアップデート
pip install --upgrade requests
# インストール済みパッケージの一覧
pip listrequirements.txt は Python プロジェクトの依存関係ファイルです:
# requirements.txt
requests==2.31.0
flask==3.0.0
sqlalchemy==2.0.0
pytest==7.4.014.3 バージョン管理ツール
複数のNode.js・Pythonバージョンを切り替えて使うためのツールです。
mise(推奨:複数言語を統一管理)
mise(ミーズ)は Node.js・Python・Ruby など複数の言語バージョンを1つのツールで管理できるモダンなバージョン管理ツールです。
# macOS へのインストール
brew install mise
# mise のセットアップ(シェルに追記)
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
source ~/.zshrc
# Node.js の最新LTSをインストール
mise install node@lts
mise use --global node@lts
# Python の特定バージョンをインストール
mise install python@3.12
mise use --global python@3.12
# インストール済みのバージョン一覧
mise list
# 現在のバージョンを確認
node --version
python3 --versionプロジェクトごとのバージョン指定
プロジェクトのルートに .mise.toml を置くと、そのプロジェクトだけ別のバージョンを使えます:
# .mise.toml
[tools]
node = "18"
python = "3.11"# プロジェクトフォルダに移動すると自動で切り替わる
cd my-project
node --version # v18.x.x(プロジェクト指定のバージョン)nvm(Node.js 専用)
nvm(Node Version Manager)はNode.js専用のバージョン管理ツールです。
# nvm のインストール(macOS / Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# 設定を反映
source ~/.zshrc
# 利用可能なバージョンを表示
nvm ls-remote
# Node.js をインストール
nvm install 20 # バージョン20系の最新
nvm install --lts # 最新LTS版
# バージョンを切り替え
nvm use 20
nvm use 18
# デフォルトバージョンを設定
nvm alias default 20
# インストール済みバージョンの一覧
nvm lspyenv(Python 専用)
# macOS へのインストール
brew install pyenv
# シェルに設定を追加
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# インストール可能なバージョン一覧
pyenv install --list
# Python をインストール
pyenv install 3.12.0
pyenv install 3.11.7
# グローバルで使うバージョンを設定
pyenv global 3.12.0
# プロジェクトごとのバージョンを設定(.python-version ファイルが作られる)
pyenv local 3.11.7どれを選ぶか
| ツール | 対応言語 | おすすめ場面 |
|---|---|---|
| mise | Node.js・Python・Ruby など多数 | 複数言語を使う場合(最初の1択) |
| nvm | Node.jsのみ | Node.js 専業の場合 |
| pyenv | Pythonのみ | Python 専業の場合 |
最初は mise を選ぶことをおすすめします。 1つのツールで複数言語を管理でき、設定ファイル(.mise.toml)でバージョンを明示できます。
14.4 Hello World を動かす
Node.js の Hello World
# Node.js のバージョン確認
node --version
# v20.11.0
# ターミナルで直接実行
node -e "console.log('Hello, World!')"
# Hello, World!
# ファイルに書いて実行
echo "console.log('Hello, Node.js!');" > hello.js
node hello.js
# Hello, Node.js!Express で簡単な Web サーバー
# プロジェクトを初期化
mkdir hello-node
cd hello-node
npm init -y
# Express をインストール
npm install express// index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(3000, () => {
console.log('http://localhost:3000 で起動中');
});# サーバーを起動
node index.js
# ブラウザで http://localhost:3000 にアクセスPython の Hello World
# Python のバージョン確認
python3 --version
# Python 3.12.0
# ターミナルで直接実行
python3 -c "print('Hello, World!')"
# Hello, World!
# ファイルに書いて実行
echo "print('Hello, Python!')" > hello.py
python3 hello.py
# Hello, Python!Flask で簡単な Web サーバー
# 仮想環境を作成(後述)
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Flask をインストール
pip install flask# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True, port=5000)# サーバーを起動
python3 app.py
# ブラウザで http://localhost:5000 にアクセス14.5 プロジェクトの構成パターン
Node.js プロジェクトの標準構成
my-node-project/
├── src/ # ソースコード
│ ├── index.js # エントリーポイント
│ ├── routes/ # ルーティング
│ └── models/ # データモデル
├── tests/ # テストコード
├── public/ # 静的ファイル
├── .env # 環境変数(Git 管理外)
├── .env.example # 環境変数のサンプル(Git 管理)
├── .gitignore
├── package.json
└── README.mdPython プロジェクトの標準構成
my-python-project/
├── src/
│ └── myapp/ # パッケージ
│ ├── __init__.py
│ └── main.py
├── tests/ # テストコード
├── venv/ # 仮想環境(Git 管理外)
├── .env # 環境変数(Git 管理外)
├── .gitignore
├── requirements.txt # 依存関係
└── README.mdPython 仮想環境(venv)
Python では仮想環境を使ってプロジェクトごとに依存関係を分離します。
# 仮想環境を作成
python3 -m venv venv
# 仮想環境を有効化
source venv/bin/activate # macOS / Linux
# venv\Scripts\activate # Windows
# プロンプトが変わる
# (venv) $ ← これが表示されたら有効化されている
# パッケージをインストール(venv 内に入る)
pip install flask requests
# 依存関係を書き出す
pip freeze > requirements.txt
# 仮想環境を無効化
deactivate.env ファイルの管理
本番環境のパスワードや API キーは .env ファイルで管理し、絶対に Git にコミットしないようにします。
# .env ファイルの例
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
SECRET_KEY=my-super-secret-key
API_KEY=sk-1234567890
NODE_ENV=development# .gitignore に必ず追加
echo ".env" >> .gitignore.env.example というサンプルファイルを Git に含め、実際の値は個別に設定する運用が一般的です:
# .env.example(Git に含める)
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
SECRET_KEY=your-secret-key-here
API_KEY=your-api-key-here
NODE_ENV=developmentまとめ
| 言語 | バージョン管理 | パッケージ管理 | 仮想環境 |
|---|---|---|---|
| Node.js | mise / nvm | npm | node_modules(自動) |
| Python | mise / pyenv | pip | venv(手動作成) |
開発環境のセットアップは最初は戸惑いますが、一度手順を覚えればどのプロジェクトでも応用できます。困ったときは --version でバージョン確認、エラーメッセージを Google 検索することがコツです。
Part 2 完了: 次は Part 3 でクラウドサービスや CI/CD などより実践的なトピックを学びます。