Вы для чего path рекварили? Вот его и используйте, иначе все пути будут неправильными. template: path.resolve(__dirname, './index.html'),
Во-вторых, не забывайте точку перед слешем (без точки ищет файлы в корне C/index.html)
В-третьих, сервер отказывается запускаться на 9000порту, на 8080 работает нормально.
gulp - это таск раннер. Его нужно запустить в среде Node и скормить конфигурационный файл(gulpfile.js). Так же ему нужны зависимости - файл package.json, в котором перечислены пакеты с версиями. Для сборки sass в частности нужен в зависимостях пакет gulp-sass. Короче, посмотрите на ютубе видео про Gulp, станет яснее.
Вот лог:
START
end
nextTick
Promise
Promise Next Tick
setTimeout
setTimeout 2
setImmediate
read file Next Tick
readFile setImmidiate
readfile setTimeout
После start идет end, а значит между ними начал выполняться fs.readFile. А в логах read идет после setImmediate, потому что позже выполнился (более долгая операция - чтение)
там где let count = 0; объявляешь массив пар(значение - количество) и перед тем как вызвать return result; закидываешь в него аргументы. Когда вызываешь метод totalRun - выбираешь из массива нужное значение