So I was trying to install «nativefier» (a software developed on top of ElectronJS) to make any website a desktop application.

Because I was behind a corporate firewall I had some troubles making npm work:

mortiz@alberta:~/Documents$ npm install nativefier -g
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to http://registry.npmjs.org/nativefier failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:80
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'

Although I tried exporting my proxy settings in the console it didn’t work:

export https_proxy="http://proxyXXXXXXXXX:8XXX"
export http_proxy="http://proxyXXXXXXXXX:8XXX"

After some search in Google you can set the proxy settings for NPM (note the difference between (http_proxy Linux Environment) and http-proxy (NPM Environment):

npm config set proxy http://X.X.X.X:80
npm config set https-proxy http://X.X.X.X:80

Some user even reported for «https» to work you must add the «=» sign:

npm config set https-proxy="http://X.X.X.X:80"

After adding those proxy in my environment it appeared to work but a new error appeared:

npm WARN checkPermissions Missing write access to /usr/lib/node_modules
npm ERR! path /usr/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

And when you use «sudo» you’ll have the «getaddrinfo ENOTFOUND»  error again. This has sense because when you do (npm config set http-proxy) it will store those values in your .npmrc file:

mortiz@alberta:~/Documents$ cat /home/mortiz/.npmrc
proxy=proxyXXXXXX:8XXX
https-proxy=proxyXXXXXX:8XXX

So I’ve just copied it to /root:

mortiz@alberta:~/Documents$ sudo cp -rp /home/mortiz/.npmrc /root/
mortiz@alberta:~/Documents$ sudo cat /root/.npmrc
proxy=proxyXXXXXX:8XXX 
https-proxy=proxyXXXXXX:8XXX

After that, everything worked:

mortiz@alberta:~/Documents$ sudo npm install nativefier -g
/usr/bin/nativefier -> /usr/lib/node_modules/nativefier/lib/cli.js
+ nativefier@7.6.1
added 323 packages in 11.484s