node.jsnpmgulprootadministration

Gulp installation permission issue


I want to install Gulp 4.0.2 on Mac but it fails due to missing write access.

$ npm i -S gulp -g

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

Seems Gulp installation requires root privileges but it is not recommended. I don't want to install gulp as administrator :(

Is it possible to create another user w/o root privileges and install Gulp from there? If yes, how to do that?

Any advice will be appreciated, thanks!


Solution

  • You can install gulp local to your project directory rather than globally:

    npm install gulp
    

    You can then run the local version using npx:

    npx gulp
    

    Note: npx comes bundled with NPM version 5.2+


    You could also use a script in your package.json:

    "scripts": {
      "gulp": "gulp"
    }
    
    npm run gulp