https://www.npmjs.com/package/mkdirp - конкретно под Вашу задачу
https://www.npmjs.com/package/fs-extra - расширенная fs
https://www.npmjs.com/package/shelljs - шелл команды в unix стиле кросплатформенно
насчет чистой ноды, модули написаны на ней, никто не мешает сделать самому
делаем по простому, через вызов системной команды:
const cp = require('child_process');
const path = require('path');
const {promisify} = require('util');
const exec = promisify(cp.exec);
function mkdirp(dirPath) {
return (process.platform === 'win32'
? exec(`mkdir ${path.win32.resolve(dirPath)}`) // win версия рекурсивна по умолчанию
: exec(`mkdir -p ${path.posix.resolve(dirPath)}`)
);
}
Чуть сложнее, но производительнее, на возможностях модуля fs - можно посмотреть в исходниках той же shelljs:
https://github.com/shelljs/shelljs/blob/master/src... или fs-extra:
https://github.com/jprichardson/node-fs-extra/blob...