10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

package.jsonとかライブラリのインストール方法とかメモ

Last updated at Posted at 2019-04-11

教えていただいているメンターさんのオンライン講義があったので、そちらのメモ


package.json

ライブラリを管理するためのファイルです。

ターミナルに

$ npm init

と打ち込むことでファイルを作成することができます。

scripts

package.json内に記述されてあるscriptsの中でショートカットを設定することができます

package.json
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
  "タスク名":"コマンド"
},

:の左にショートカットに使いたいタスク名、右に実行したいコマンドを記述します

$ npm run {タスク名}

で実行することができます

タスク名にteststartと設定した場合はrunを省略することができます

ライブラリのインストール方法

ライブラリをインストールする際には、package.json内のどこのプロパティに記述するかも設定する必要があります

  • dependencies …webサービスを動かすために必要なライブラリを記述するところ(Express,Vueなど)
  • devDependencies …webサービスを動かすためでなく、開発時に使用するライブラリを記述するところ(mocha,power-assertなど)
// dependenciesへインストール
$ npm install {ライブラリ名}

// devDependenciesへインストール
$ npm install -D {ライブラリ名}

Node.jsの古いバージョンではinstallの後に --saveという記述も必要でしたが、現在は必要ないみたいです。

node_modulesと.gitignore

ライブラリをインストールすると、node_modulesというディレクトリができ、そこにライブラリが保存されます。
このnode_modulesですが、package.jsonにインストールしたライブラリの情報がある場合は、node_modulesを削除しても

$ npm install

とコマンドを打てば全てインストールしてくれます。なのでGitHubなどでコードを共有する場合もnode_modulesをプッシュする必要はありません。
node_modulesはライブラリをインストールするたびにデータ量が多くなります、なので全てpushするとgit cloneした際の負担も大きくなりますし、また、プルリクエスト時に全てpushした場合、全てのファイルがプルリクで出てしまうのでコードレビューもしにくくなります。

なのでnode_modulesはpushするものから除外しておくのが基本ですが、その際に使用するのが.gitignoreというファイルです。
.gitignoreは、管理に含めないファイル、ディレクトリを設定するファイルです。
node_modulesを除外したい場合は

.gitignore
node_modules/

と記述します。

gitignore.io というwebサービスを使うと、簡単に除外したいファイル等を設定することができます
gitignore.ioのススメ - Qiita

package-lock.json

バージョンを固定するためのファイルです、git cloneしたものをnpm installしたさいに、もしライブラリのバージョンが変わっていたら大変です。
何故なら、開発時のバージョンでは動いていたコードが、最新版になると記述の方法が変わっていたりなどして、動かない可能性があるからです。

そういったことが起きないためにpackage-lock.jsonでインストールするバージョンを固定する必要があります。
基本的にライブラリをインストールした際に自動で生成されるので、無理に気にする必要はないです。

^(キャレット)

package.jsonに記述されてあるライブラリのバージョンを見ると、数字の左に^という記号がついています

{
  "dependencies": {
    "hoge": "^1.1.1",  // >=1.1.1 and <2.0.0
    "huga": "^0.1.1",    // >=0.1.1 and <0.2.0
    "foo": "^0.0.1"      // >=0.0.1 and <0.0.2
  }
}

この記号は キャレットと呼ばれるもので、これがあると、一番左の0になっているところの数字以外の部分のバージョンアップはされないようになります

package.json のチルダ(~) とキャレット(^) - Qiita

10
10
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
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?