1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】package.jsonってちゃんと見たことある?

Posted at

package.jsonってちゃんと見たことありますか?

自分はアプリケーションの開発だけに意識が向いていたので、あんまりpackage.jsonをじっくり眺めたことないんですよねー😅

なのでこの記事ではNext.jsとか Reactなどをinitしたとき勝手に作られるpackage.jsonってなに?どんなことが記載されているの?を実際のコードを用いて備忘録的に書いていきます!

そもそもpackage.jsonって何?

package.jsonプロジェクトの「取扱説明書」 のようなもので、そのプロジェクトが何で、何が必要で、どう動かすかを教えてくれるようなものです

以下の内容がpackage.jsonには含まれています。

  • プロジェクトの基本情報(名前、バージョンなど)
  • 使用するライブラリの一覧(ReactやNext.jsなど)
  • よく使うコマンドの定義(開発サーバー起動など)
  • プロジェクトの設定(TypeScriptの設定など)

実際のNext.js package.jsonを見てみよう

実際のNext.jsプロジェクトのpackage.jsonが以下です(initして直後のものではないです)

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "WATCHPACK_POLLING=true next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "storybook": "storybook dev -p 6006",
    "build-storybook": "storybook build",
  },
  "dependencies": {
    "@conform-to/react": "^1.4.0",
    "@conform-to/zod": "^1.4.0",
    "@radix-ui/react-checkbox": "^1.2.3",
    "@radix-ui/react-label": "^2.1.4",
    "@tanstack/react-query": "^5.74.3",
    "axios": "^1.8.4",
    "next": "15.2.1",
    "react": "^19.0.0",
    "react-dom": "^19.0.0",
    "zod": "^3.24.2"
  },
  "devDependencies": {
    "@biomejs/biome": "1.9.4",
    "@storybook/nextjs": "^8.6.11",
    "@types/node": "^20",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "typescript": "^5",
    "vitest": "^3.1.1"
  }
}

ずら~っといろいろ書いてありますねー
一つずつ見ていきましょう :point_down:

基本情報

プロジェクトの身分証明書的なもの

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true
}
項目 意味
name プロジェクト名 "frontend"
version バージョン "0.1.0"(大きな変更.機能追加.バグ修正)
private npm公開するか trueなら非公開

普通のWebアプリならprivate: trueにしておけばOKです

「scripts」よく使うコマンド集

開発でよく使うコマンドがまとまっています

"scripts": {
  "dev": "WATCHPACK_POLLING=true next dev",
  "build": "next build",
  "start": "next start",
  "lint": "next lint",
  "storybook": "storybook dev -p 6006"
}

開発でよく使うコマンドがエイリアスのように設定されています

コマンド 用途 実行方法
dev 開発サーバー起動 npm run dev
build 本番用ファイル作成 npm run build
start 本番サーバー起動 npm run start
lint コードチェック npm run lint

実際の使い方

# 開発サーバーを立てる
npm run dev

開発中はnpm run devを実行するだけで、ファイルを変更するたびに自動でページが更新されます!便利ですよねー :sparkles:

「dependencies」アプリに必要なライブラリ

本番環境でも必要なライブラリたちです。
ここにプロジェクトが動作するために必要な外部ライブラリが記載されます

"dependencies": {
  "@conform-to/react": "^1.4.0",
  "@tanstack/react-query": "^5.74.3",
  "axios": "^1.8.4",
  "next": "15.2.1",
  "react": "^19.0.0",
  "react-dom": "^19.0.0",
  "zod": "^3.24.2"
}

バージョンの記号は何?

"react": "^19.0.0"  // ^マークの意味は?
記号 意味
^1.4.0 1.4.0以上、2.0.0未満 新機能は受け入れるけど、大きな変更はNG
~1.4.0 1.4.0以上、1.5.0未満 バグ修正のみ受け入れ
1.4.0 厳密に1.4.0のみ 全く変更したくない

基本的に^が使われていて、バグ修正や新機能は自動で取り込まれます

「devDependencies」開発時のみ必要なツール

開発中だけ使うツールたちです

"devDependencies": {
  "@biomejs/biome": "1.9.4",
  "@storybook/nextjs": "^8.6.11",
  "@types/node": "^20",
  "@types/react": "^19",
  "typescript": "^5",
  "vitest": "^3.1.1"
}

新しいライブラリを追加したい時

# 本番でも使うライブラリ
npm install ライブラリ名

# 開発時のみ使うツール
npm install --save-dev ツール名

まとめ

package.jsonは最初は難しく見えますが、実は

  • 基本情報:プロジェクトの名前とバージョン
  • scripts:よく使うコマンドのまとめ
  • dependencies:アプリに必要なライブラリ
  • devDependencies:開発時のみ必要なツール

↑を一旦覚えておけば良さそうです。

今度package.jsonを見る時は、「あ〜、これは開発コマンドがまとまってるところね」「ここにアプリで使うライブラリが書いてあるのね」と思えるはずです!

参考

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?