How to use globally installed gulp modules?

automatix picture automatix · Feb 18, 2016 · Viewed 8.5k times · Source

I tried this tutorial to basically setup my gulp project and activate less processing and watching. It works. Now I'd like to install the modules globally, in order to acces them from everywhery on the machine and not to installa them for every project:

npm install --global gulp-less
npm install --global gulp-watch
npm install --global gulp-autoprefixer
npm install --global gulp-plumber

Now I want to run gulp in my project folder, but gulp cannot find the globally installed modules:

$ cd /my/project
$ gulp
module.js:327
    throw err;
    ^

Error: Cannot find module 'gulp-less'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/root/temp/gulptest/gulpfile.js:9:12)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)

How to get it working and use global gulp modules?

Answer

automatix picture automatix · Feb 22, 2016

The solution was npm-link. I had to link all my local packages to global counterparts:

npm link gulp
npm link gulp-less
npm link gulp-watch
npm link gulp-autoprefixer
npm link gulp-plumber
npm link path

Now it works.

Some StackOverflow posts to this subject: