bauhausify美大出身の
WEBエンジニアリング奮闘記
CODING

日常的に使うシーン別Node.jsコマンド集

2019.09.24
Macをお使いの人向けに、日常的に使っているNode.jsのコマンドや使い方をシーン別にご紹介します。

この記事は以下のソフトウェアがMacにインストールされていることが前提となっています。

もしインストールされていない方は、一つ前の記事の2019年版Node-jsのおすすめインストール方法をご覧ください。

シーン別コマンド集

JavaScriptを実行する

index.jsというJavaScriptファイルを実行する場合、以下のコマンドだけで実行できます。

node index.js

npmのモジュールを使いたい

npm install <モジュール名>でモジュールをインストールします。
が、ここで注意点です。
モジュールのインストール先は2つあります。
npm install <モジュール名>の場合は、Terminalで現在いる場所、ローカルディレクトリにインストールされます。 npm install <モジュール名> -gのように-gをつけるとグローバルインストールとなり、Node.jsのプログラムのある場所にインストールされます。インストールされたモーウールの場所はTerminalでnpm root -gを実行するとわかります。-gをつけた場合、Terminalでどの場所にいても再インストールせずにモジュールを使うことができます。
Terminalから直接実行するようなモジュールやいつでも使いたいモジュールの場合に使います。

インストールするとnode_modulesというディレクトリが作成され、その中にモジュールの実態がダウンロードされます。
JavaScriptファイルで以下を実行すると、モジュールを使うことができます。

index.js
const someModule = require('モジュール名');

モジュールの使用例puppeteerを使いブラウザのキャプチャをとる

サンプルとして、puppeteerというモジュールをインストールし、サイト https://example.com のキャプチャを撮ってみましょう。

デスクトップにsampleというディレクトリを作り移動します。

cd ~/Desktop
mkdir sample
cd sample

puppeteerをインストールします。

npm install puppeteer

同じ場所で、index.jsというファイルを作り以下を記述します。

index.js
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

最後に実行しましょう。

node index.js

すると、同じディレクトリにexample.pngという名前のキャプチャー画像が生成されているはずです。

npmを使ったプロジェクトディレクトリを作成したい

好きな名前のディレクトリを作成し、npmの初期化コマンドを使います。

mkdir test
cd test
npm init # これがnpmの初期化コマンド

すると、プロジェクトの設定をどうするか、英語で対話的に質問されます。
質問内の()の中は初期値です。よくわからなければ、何も入力せずにEnterを押すと初期値で設定されていきます。
答えた内容は、このあと生成されるpackage.jsonというファイルに記載されます。

チップスとして、npm init -yと実行すると対話なしで、初期値で設定されたpackage.jsonがいきなり生成されます。
package.jsonの各プロパティは公式ドキュメント(英語)翻訳されたドキュメントをご確認ください。

package.jsonのあるプロジェクトで依存モジュールを設定したい

モジュールをインストールする際のnpm install <モジュール名>のコマンドに--saveオプションをつけると、依存モジュールのバージョン情報がpackage.jsonに追記されます。

puppeteerモジュールを設定したい場合は、以下のコマンドを実行します。

npm install puppeteer --save

注意点として、--saveの他にも--save-devというオプションがあります。
インストールするモジュールがプロジェクトの開発時にのみ使用される場合は--save-devを、プロジェクトが実行されているときに使用する場合は--saveを使います。
--saveの場合はdependencies--save-devの場合はdevDependenciesのプロパティ名で、package.json内に記述されます。
プロジェクトを配布する場合にとても重要なオプションです。

既存のNode.jsプロジェクトを動かしたい

次は誰かが作成したプロジェクトを実行してみます。
Gitなどでプロジェクトをダウンロードした場合、node_modulesはファイル数とサイズが重く、Gitの管理から除外されており生成されません。

なので、まずプロジェクトのディレクトリにpackage.jsonがあることを確認し、以下のコマンドを実行しましょう。 node_modulesディレクトリが生成され依存モジュールがダウンロードされます。

npm install

npmのモジュールを使いたいではnpm install <モジュール名>とモジュール名を記入していましたが、モジュール名を省略するとpackage.jsonの記載されている依存モジュールがすべてダウンロードされます。

注意点として、ロックファイルがある場合は、必ずそのファイルに対応したコマンドを使います。

  • package-lock.jsonがある場合は、必ずnpm installを実行
  • yarn.lockファイルがある場合は、必ずyarnを実行

もしyarnをまだインストールしていない場合は、以下のコマンドでyarnをインストールしましょう。

brew install yarn

よく使うNode.jsのコマンドのショートカットを作りたい

package.jsonscriptsというプロパティを使用します。
例えばindex.jsを実行する以下のコマンドを頻繁に使っているとします。

node index.js

このショートカットを作成したい場合、package.jsonscriptsの中に、"ショートカット名": "ショートカットしたいコマンド"を定義します。

package.json
{
  "scripts": {
    "start": "node index.js"
  }
}

このように記述すると、npm run <ショートカット名>でショートカットしたいコマンドが実行されます。
以下を実行すると、node index.jsが実行されます。

npm run start

もしyarnで実行したい場合は、yarnのあとにショートカット名を入力するだけです。

yarn start

まとめ

この記事の内容を覚えると、誰かが作成したプロジェクトでも、ドキュメントを見ずに簡単に実行できてしまうケースが多いです。
例えば、mikeyさんのreact-scaffoldというプロジェクトを試してみたいとします。
package.jsonscriptsstartという記述があるので、以下のコマンドを実行します。

git clone https://github.com/mikeyamadeo/react-scaffold
cd react-scaffold
yarn
yarn start

すると、特にドキュメントなども見なくても、Webサーバーが立ち上がり、いつでも開発できる状態になります。

コードがオープンに公開されるこの時代、リポジトリの多いNode.jsを習得することはとても有意義なことです。
おすすめするのは、0からnpmのプロジェクト(パッケージ)を作ってみることです。
一つ一つ何が起こっているのか理解することで、誰かのパッケージを使う際や、エラーなどが発生した際に、その知識が役立ちます。

この記事を共有しよう!

前の記事
2019年版Node-jsのおすすめインストール方法
次の記事
VRの雑感とWebエンジニアリング目線のVR
関連記事