lazuren: вы же сделали --save-dev, это вызывает локальную установку. Локальный модуль — зависимости тоже локально.
Глобально он их ставить не имеет права, потому что это может вызвать конфликты. Предположим, у меня один проект на grunt, другой на gulp, первый использует ansi-regex 1.x, другой — 2.x. Если бы все ставилось глобально, у меня тут же перестал бы работать grunt.
В общем, почитайте как npm работает.
lazuren: 1) нет смысла ставить его и глобально и локально. 2) Если у вас npm 3, то может быть такое, что зависимости кладутся в ./node_modules, а не в ./node_modules/gulp/node_modules (npm 3 пытается делать дерево на файловой системе максимально мелким).