41 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Npm Behind a Proxy Server
 | |
| ---
 | |
| ## Use-cases
 | |
| 
 | |
| You might need to modify `npm install` commands that access remote repositories (<a href='https://www.npmjs.com/' target='_blank' rel='nofollow'>npmjs</a>, for example) for installing Node JS modules; if your internet access is through a <a href='https://en.wikipedia.org/wiki/Proxy_server' target='_blank' rel='nofollow'>proxy server</a>.
 | |
| 
 | |
| Proxy servers are common in college and business type environments.
 | |
| 
 | |
| You can <a href='http://www.wikihow.com/Change-Proxy-Settings' target='_blank' rel='nofollow'>locate your proxy settings</a> from your browser's settings panel.
 | |
| 
 | |
| ## Using Proxy with NPM
 | |
| 
 | |
| Once you have obtained the proxy settings (server URL, port, username and password); you need to configure your `npm` configurations as follows.
 | |
| 
 | |
|     $ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
 | |
|     $ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
 | |
| 
 | |
| You would have to replace `<username>`, `<password>`, `<proxy-server-url>`, `<port>` with the values specific to your proxy server credentials.
 | |
| 
 | |
| These fields are optional. For instance, your proxy server might not even require `<username>` and `<password>`, or that it might be running on port 80 (in which case `<port>` is not required).
 | |
| 
 | |
| Once you have set these, your `npm install`, `npm i -g` etc. would work properly.
 | |
| 
 | |
| ## When Not to Use
 | |
| 
 | |
| You should not have to use `npm` commands with proxy settings, if either of the following happens:
 | |
| 
 | |
| > *   Your system administrator or corporate policy does not allow you to access remote `npm` repositories from NPM-JS, for instance.
 | |
| > *   The remote repository of Node modules in question is not in your machine, but it's within the internal network.
 | |
| 
 | |
| ## Unset Proxy Settings
 | |
| 
 | |
| Use <a href='http://luxiyalu.com/how-to-remove-all-npm-proxy-settings/' target='_blank' rel='nofollow'>this</a> blog post to unset your proxy settings. You can also manually remove the lines specifying your proxy settings from your `.npmrc` <a href='https://docs.npmjs.com/files/npmrc' target='_blank' rel='nofollow'>file</a>.
 | |
| 
 | |
| ## Resources
 | |
| 
 | |
| You may use the following resources for further reading on this:-
 | |
| 
 | |
| > *   <a href='https://github.com/npm/npm/issues/9401#issuecomment-134569585' target='_blank' rel='nofollow'>Can I Log In Behind A Proxy Server</a>
 | |
| > *   <a href='http://intenseagile.com/2015/09/04/npm-behind-proxy.html' target='_blank' rel='nofollow'>NPM Behind A Corporate Proxy</a> |