免責事項
この記事は初心者視点でザックリとした説明をしています。正確性に欠ける可能性がございますが、ご了承ください。「明らかに違うよ」ということがありましたら、ご指摘くださると幸いです。
環境
OS:最新版ではないMacOS
VirtualBox:5.2.26
Vagrant:2.2.6
Ubuntu:ubuntu/bionic64 v20181129.0.0
目次
- yarnとは
- yarnでパッケージのインストール
- 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ファイルを作成し、パッケージを作っていきます。
モジュールは関数型とオブジェクト型のどちらでも定義できます。
モジュールを関数型で定義
'use strict';module.exports=add(a,b){returna+b;};
としても、
モジュールをオブジェクト型で定義
functionadd(a,b){returna+b;}module.exports={add:add};
OR
module.exports={add:(a,b)=>{returna+b;}};
でも、パッケージとして使うことができます。
使用先のファイルでは、以下のように使います。
関数型で定義されたモジュールのパッケージを使うには
constadd =require(パスorパッケージ名);constresult=add(1,2);console.log(result);// expected output: 3
オブジェクト型で定義されたモジュールのパッケージを使うには
const変数 =require(パスorパッケージ名);constresult=変数.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