ブログ

Armadillo-640: npm(Node Package Manager)でNode.js用のパッケージを管理する方法

at_shigehisa.y…
2019年1月8日 13時41分

1.必要なパッケージのインストール

インターネットに接続可能なネットワークにArmadillo-640を接続します。

パッケージを最新版に更新します。

root@armadillo:~# apt-get update
root@armadillo:~# apt-get -y upgrade

Node.jsの最新版は、以下のURLで確認できます。

https://nodejs.org/ja/download/releases/

本稿執筆時点で安定版はNode.js 10.15.0ですので、このバージョンをインストールします。

root@armadillo:~# curl -sL https://deb.nodesource.com/setup_10.x | bash -
root@armadillo:~# apt-get install -y nodejs

※ curlが動作しない場合は、以下のコマンドでcurlをインストールして下さい。

root@armadillo:~# apt-get install -y curl

Node.jsをインストールしたらnpmも一緒にインストールされます。

インストールしたNode.jsのバージョンは、以下のコマンドで確認できます。

root@armadillo:~# node --version
v10.15.0
  • Armadillo-640でのNode.jsの基本的な使い方は、ブログ記事 「Armadillo-640でNode.jsを使ってみる」 を参照してください。
  • また、Node.jsは、nvm(Node Version Manager)を使ってもインストールできます。nvmによるNode.jsのインストール方法も上記ブログに記載していますので、参考にしてください。

2.プロジェクトディレクトリの作成

npmで管理するプロジェクトディレクトリを作成して、そこに移動します。

$ mkdir -p test_app
$ cd test_app

プロジェクトディレクトリを作成したら、npm initを実行しましす。

npm initは、このディレクトリ下がnpmの管理下に置ための宣言です。

単純にnpm initを実行すると、プロジェクト名やパッケージ名などを逐次入力する必要があります。

取りあえず、全てをデフォルト設定にしたい場合は、以下のコマンドを実行します。

root@armadillo:~/test_app# npm init -y

上記コマンドの実行が終了すると、プロジェクトディレクトリ直下にpackage.jsonが新規に作成されます。

root@armadillo:~/test_app# ls -la
total 12
drwxr-xr-x 2 root root 4096 Jan  7 16:40 .
drwx------ 4 root root 4096 Jan  7 16:40 ..
-rw-r--r-- 1 root root  222 Jan  7 16:40 package.json
root@armadillo:~/test_app# cat package.json
{
  "name": "test_app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \\"Error: no test specified\\" && exit 1"
  }
}

3.Node.js用パッケージのインストール

Node.js用パッケージの種類は、以下のURLで確認できます。

https://www.npmjs.com/

パッケージは、ローカルとグローバルにインストールすることができます。

(1) ローカルインストール

開発中のアプリが依存するパッケージのみをインストールします。インストールしたパッケージは、現在のプロジェクト内のみで使えます。

(2) グローバルインストール

システム全体で使用するパッケージをインストールします。インストールしたパッケージは、システム全体で使用できます。

ここではmkdirpパッケージを、ローカルインストールする場合を紹介します。

以下のコマンドを実行して、mkdirpをインストールします。

root@armadillo:~/test_app# npm install mkdirp

カレントディレクトリのpackage.jsonにmkdirpパッケージが追加されました。

root@armadillo:~/test_app# cat package.json
{
  "name": "test_app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \\"Error: no test specified\\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "mkdirp": "^0.5.1"
  }
}
  • mkdirpは、ディレクトリを再帰的に作成するための、Node.js用パッケージです。
  • mkdirpの詳細は、mkdirpを参考にしてください。

4.サンプルスクリプトの作成

ここではmd.jsの名前で、以下のサンプルスクリプトを作成します。このスクリプトは、カレントディレクトリにatmarkディレクトリを再帰的に作成するためのサンプルです。

const mkdirp = require('mkdirp');
mkdirp('atmark', function (err) {
    if (err) console.error(err)
    else console.log('Directory created!')
});

5.サンプルスクリプトの実行

以下のコマンドでサンプルスクリプトを実行します。

root@armadillo:~/test_app# node md.js
Directory created!

カレントディレクトリにatmarkディレクトリが作成されたことが確認できます。

root@armadillo:~/test_app# ls -la
total 28
drwxr-xr-x 4 root root 4096 Jan  7 16:51 .
drwx------ 5 root root 4096 Jan  7 16:43 ..
drwxr-xr-x 2 root root 4096 Jan  7 16:51 atmark
-rw-r--r-- 1 root root  142 Jan  7 16:51 md.js
drwxr-xr-x 5 root root 4096 Jan  7 16:43 node_modules
-rw-r--r-- 1 root root  534 Jan  7 16:43 package-lock.json
-rw-r--r-- 1 root root  270 Jan  7 16:43 package.json