1
1

More than 3 years have passed since last update.

Node.jsのパッケージマネージャの使い方(yarn)

Last updated at Posted at 2019-11-01

免責事項

この記事は初心者視点でザックリとした説明をしています。正確性に欠ける可能性がございますが、ご了承ください。「明らかに違うよ」ということがありましたら、ご指摘くださると幸いです。

環境

OS:最新版ではないMacOS
VirtualBox:5.2.26
Vagrant:2.2.6
Ubuntu:ubuntu/bionic64 v20181129.0.0

目次

  1. yarnとは
  2. yarnでパッケージのインストール
  3. yarnでパッケージを作ってみる

1. yarnとは

yarnとはNode.jsで使うパッケージを管理するものですが、
この説明をする前にパッケージについて説明します。

パッケージ

パッケージはライブラリを包むもの。
パッケージマネージャはライブラリを包み、管理するものです。

ライブラリ

ライブラリは先人が作った処理です。
汎用的な処理を実装する際に使います。
例えば、「複数の値の中で一番大きい数字がどれか判定したい!」という時があったとします。

ただ、この処理を1から作るのは、簡単そうにありません。

そこで、ライブラリを使います。
Javascriptには標準で、Math.max() という()内に引数として与えた数字の中で、一番大きい数字を返す「標準ビルトインオブジェクトMathのmaxメソッド」がライブラリとして標準で備わっています。

Math.max(2, 3, 1);
// expected output: 3

標準ビルトインオブジェクト...JavaScriptが標準で提供しているオブジェクト(ex: MathやDateなど)、ライブラリとして提供されています。
Node.jsドキュメント...Node.jsがバージョンごとに標準で、ライブラリを提供しています。

続いて、yarnについて説明していきます。
Node.jsが標準で備えているパッケージ管理ツールは npm(エヌピーエム)と呼ばれるものです。
npm公式サイトには誰かが作ったライブラリが公開されており、自由に利用することができます。

$ npm install パッケージ名

でパッケージをインストールすることができます。

2. yarnでパッケージのインストール

しかし、npmをさらに使いやすくしたパッケージ管理ツールyarnが誕生しました。
使い方としては、npmとほとんど一緒で、

$ yarn add パッケージ名

とします。
yarn addでパッケージをインストールすると、インストールを実行したディレクトリの中にあるnode_modulesというディレクトリに、パッケージがインストールされます。

node_modules ディレクトリにインストールされたnpmパッケージは、自動的に読み込まれ、そのディレクトリ内で以下のように利用することができます。

const 変数 = require('パッケージ名');

パッケージをrequire関数で取得することで、利用できるようになります。

3. yarnでパッケージを作ってみる

yarn(npm)では他人のパッケージを利用するだけでなく、自分でパッケージを作成しすることもできます。

$ mkdir パッケージ名のディレクトリ
$ cd パッケージ名のディレクトリ
$ yarn init

yarn initと入力すると、パッケージの設定画面がでてきます。

//パッケージ名を入力します。
name: (パッケージ名)
//バージョンの設定します。
version: (1.0.0)
//パッケージの説明を入力します。
description:
//ライブラリとして読み込まれるJavaScriptファイルを設定します。
entry point: (index.js)
//Gitリポジトリを公開する場合のURLを入力します。
repository url:
//npmに登録する際の著者の名前を設定します。
author:
//ライセンス名を入力します。
license: (MIT)
//公開の可否を入力します。
private:

パッケージの設定が成功すると以下のように表示されます。

success Saved package.json
Done in 9.20s.

では、ライブラリとして読み込まれるJavaScriptファイルを作成し、パッケージを作っていきます。
モジュールは関数型とオブジェクト型のどちらでも定義できます。

モジュールを関数型で定義

index.js
'use strict';
module.exports = add(a, b) {
  return a + b;
};

としても、

モジュールをオブジェクト型で定義

index.js
function add(a, b) {
  return a + b;
}
module.exports = {
  add : add
};

OR

index.js
module.exports = {
  add : (a, b) => {
  return a + b;
}
};

でも、パッケージとして使うことができます。

使用先のファイルでは、以下のように使います。

関数型で定義されたモジュールのパッケージを使うには

app.js
const add = require(パス or パッケージ名);
const result = add(1, 2);
console.log(result);
// expected output: 3

オブジェクト型で定義されたモジュールのパッケージを使うには

app.js
const 変数 = require(パス or パッケージ名);
const result = 変数.add(1, 2);
console.log(result);
// expected output: 3

requireの引数には、パッケージがnpm公式サイトに公開されていたらパッケージ名を指定し、
自分のPC上にあるならパスを指定します。

参考

「N予備校 プログラミングコース」
https://www.nnn.ed.nico/
「[NodeJS] モジュール定義について学ぶ」
https://www.yoheim.net/blog.php?q=20150101

1
1
0

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
1