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
もあります。