node.js で全ての階層のディレクトリを作成する

node.js の Path の mkdirSyncディレクトリを作成する場合、階層のディレクトリが存在しない場合は新しいディレクトリはつくってくれません。

const FS = require("fs-extra");

// hoge, foo, bar というディレクトリは存在しない場合
FS.mkdirSync("./hoge/foo/bar");
// Error: ENOENT: no such file or directory, mkdir './hoge/foo/bar'

fs-extra を使う

こういう風に全ての階層のディレクトリを作って欲しい場合は fs-extra を使うのが手っ取り早いみたいです。

$ npm install fs-extra -g
const FS = require("fs-extra");

// mkdirSync ではなくて mkdirsSync なので注意
FS.mkdirsSync("./hoge/foo/bar");

これでディレクトリがない場合でも全てのディレクトリが作成されます。
また上記の場合は同期処理ですが、非同期処理の mkdirs もあります。

参照