nodeではnpmを使ってライブラリをインストールしてプログラミングを行います。そして配布する際にはnode_modulesを除き、各自がインストールします。しかしネットワークが必要だったり、場合によってはライブラリのインストールに失敗するかも知れません。 そこで使ってみたいのがnccです。コードを一つにまとめてポータブルにしてくれるソフトウェアです。

nccの使い方

コード例です。

const chalk = require("chalk");
console.log(chalk.blue.bgRed.bold("Hello world!"));

ビルドを使うとコードが生成されます。

$ ncc build
ncc: Version 0.20.4
ncc: Compiling file index.js
44kB  dist/index.js
44kB  [439ms] - ncc 0.20.4

生成されたコードは外部ライブラリ不要で実行できます。

$ node dist/index.js 
Hello world!

この手のライブラリではnodeのランタイムも一緒になったバイナリを生成するものもあります。その場合、ファイルサイズが大きくなります。nccはnode用のbrowserifyといった位置づけで、生成されるファイルのサイズは大きくありません。TypeScriptにも対応しているのが特徴です。

nccはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

zeit/ncc: Compile a Node.js project into a single file. Supports TypeScript, binary addons, dynamic requires.