【初心者必見】Node.jsのpackage.jsonを理解する

2022年11月24日Node

node.js
ミニマリスト_カミ

みなさんこんにちは!
カミ@god48_です。

みなさん Node.jsのpackage.jsonの知識はありますか?
この記事はpackage.jsonについて聞いたことはあるけど、いまいちpackage.jsonについてよく分かってない方や、Node.jsについての全く知識がない方へNode.jsのpackage.jsonについての紹介です。

この記事でわかること

  • package.jsonとは?
  • package.jsonの生成
  • package.jsonの記述
  • package.jsonについての理解

この記事を最後まで読めば「package.jsonとは?」から「package.jsonの記述」までの理解が深まりますので、最後まで読んで「package.json」についてマスターしましょう。

それでは順に見ていきましょう。

package.jsonとは

package.jsonとは?

Node.js で開発する場合、アプリケーションに対して実行するbuildやテストなどのコマンドで管理するファイルがあります。
それがpackage.jsonです。

package.json ファイルに実行コマンドを記述することで、コマンドプロンプトやターミナルでコマンドを叩くことで実行されます。

コマンドを叩く際はnpmコマンドやyarnコマンドで行います。

icon

これがpackage.jsonのコードです。
説明は後でしますね。

{
  "name": "<current directory name>",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

package.jsonの生成

package.jsonの生成

npm init
npm init -y
npm init -yes

どのコマンドでもpackage.jsonは生成できます。
npm initはpackage.json生成するにあたって、packagenameやversionなどを一つずつ決めていきます。
npm init -yやnpm init -yesは後から決める場合に使います。

package.jsonは後から編集することがあるので、僕は以下のコマンドでpackage.jsonを生成すしてます。

npm init -y

スポンサードサーチ

package.jsonの記述

package.jsonの記述

{
  "name": "<current directory name>",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

package.jsonの中身を一つずつ説明していきます。

name

"name": "app_name",

nameではモジュール名です。
importやrequireでモジュールの読み込みで利用できます。

version

"version": "1.0.0"

モジュールのバージョン名です。
アプリの公開でのバージョンの管理等に使用できます。

description

"description": "Module description"

モジュールの説明です。
npm searchで表示されます。
他人がパッケージを見たときに、分かるような説明を記述します。

main

"main": "index.js"

モジュール内で最初に呼ばれるスクリプトファイルです。

scripts

  "scripts": {
    "start": "node app.js",
    "production": "NODE_ENV=production node app.js"
  }

shell scriptを実行できます。
またエイリアスコマンドを定義することもできます。

keywords

"keywords": []

description同様にパッケージマネージャ内でパッケージを探す時に使います。
キーワードを文字列に配列で記述します。

author

{ 
  "name" : "kami",
  "email" : "kami@hoge.com",
  "url" : "http://hoge.com/"
 }

author は一人だけを、 contributors は複数の人を配列を指定します。
name フィールドと、任意でurlとemailを記述します。

"kami" <"kami@hoge.com"> (http://hoge.com/)

上記のようにauthorを一行で記述することができます。

license

{
  "license": "ISC"
  "license": "UNLICENSED"
  "license": "MIT",
}

ライセンス情報です。
デフォルトはISCです。
ISCはフリーのソフトウェアで用いられるライセンスです。
オープンソースウェアのライセンスの一つで、自由に使えることができるのがMITです。
その逆で、privateや非公開のパッケージ使う場合は、UNLICENSEDにします。

private

"private": true

privateがtrueになっていると、モジュールが公開されません。

dependencies

  "dependencies": {
    "xxx": "1.0.0"
  }

dependenciesはインストールしたパッケージ名とそのバージョンが表示されます。

devDependencies

  "devDependencies": {
    "xxx": "^1.0.0"
  }

devDependenciesはインストールしたパッケージ名とそのバージョンが表示されます。

dependenciesとdevDependenciesの違い

dependenciesとdevDependenciesの違いは、本番環境と開発環境でインストールするパッケージを管理です。

  • 本番環境:dependencies
  • 開発環境:devDependencies

npm installすると「dependencies」と「devDependencies」どちらにも記載されているパッケージをインストールします。

まとめ

  • package.jsonとはNode.js で開発する場合、アプリケーションに対して実行するbuildやテストなどのコマンドで管理するファイルのこと。
  • npmコマンドでpackage.jsonに記述している内容を実行することができる。

スポンサードサーチ

実装やエラーが解決できない場合

プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。

考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。

そういう時は聞ける先輩や、メンターに相談することが大事です。

僕にも相談可能なので気軽に相談してください。

Twitterからの連絡だと確実ですよ。

オンラインスクールやプログラミングスクールといったプログラミングを学べる方法もあるので、そちらもぜひ活用してもいいと思います。

Web開発で分からない時

オンライン完結型スクール DMM WEBCAMP PRO

アプリ開発で分からない時

プログラミング×稼げる副業スキルはテックキャンプ

プログラミングについて分からない時

【コエテコ様限定】※ご案内を受けた以外のメディアが使用しても成果は承認されません。
ミニマリスト_カミ

僕への個人でもメンターでも、スクールでもお好きな方を活用ください。

NodeNode.js

Posted by kami