toshiki-notebook/assets/development_installing-npm-package-behind-proxy.md.656c5a10.js

16 lines
10 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as p}from"./chunks/PageInfo.vue_vue_type_script_setup_true_lang.65c6b98c.js";import{_ as o,o as l,c as e,k as n,a as t,E as r,O as c}from"./chunks/framework.c989bd33.js";import"./chunks/commonjsHelpers.725317a4.js";const A=JSON.parse('{"title":"Installing NPM Packages Behind Proxy","description":"","frontmatter":{},"headers":[],"relativePath":"development/installing-npm-package-behind-proxy.md","filePath":"development/installing-npm-package-behind-proxy.md","lastUpdated":1726418622000}'),i={name:"development/installing-npm-package-behind-proxy.md"};function y(d,s,m,h,g,F){const a=p;return l(),e("div",null,[s[0]||(s[0]=n("h1",{id:"installing-npm-packages-behind-proxy",tabindex:"-1"},[t("Installing NPM Packages Behind Proxy "),n("a",{class:"header-anchor",href:"#installing-npm-packages-behind-proxy","aria-label":'Permalink to "Installing NPM Packages Behind Proxy"'},"")],-1)),r(a,{readTime:"1",words:"224"}),s[1]||(s[1]=c(`<p>On a recent assignment, I needed to install npm behind a corporate proxy. I had already set the environment variables <code>HTTP_PROXY</code> and <code>HTTPS_PROXY</code>. Other command line utilities, like ruby gems, recognized these environment variables. Npm did not.</p><p>After some googling, I found the following way to configure the proxy for npm.</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki github-dark-dimmed vp-code-dark"><code><span class="line"><span style="color:#768390;"># npm</span></span>
<span class="line"><span style="color:#F69D50;">npm</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">config</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">set</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://127.0.0.1:789</span><span style="color:#F47067;">0&gt;</span></span>
<span class="line"><span style="color:#F69D50;">npm</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">config</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">set</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">https-proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://127.0.0.1:789</span><span style="color:#F47067;">0&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#768390;"># yarn</span></span>
<span class="line"><span style="color:#F69D50;">yarn</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">config</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">set</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://127.0.0.1:789</span><span style="color:#F47067;">0&gt;</span></span>
<span class="line"><span style="color:#F69D50;">yarn</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">config</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">set</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">https-proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://127.0.0.1:789</span><span style="color:#F47067;">0&gt;</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6A737D;"># npm</span></span>
<span class="line"><span style="color:#6F42C1;">npm</span><span style="color:#24292E;"> </span><span style="color:#032F62;">config</span><span style="color:#24292E;"> </span><span style="color:#032F62;">set</span><span style="color:#24292E;"> </span><span style="color:#032F62;">proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://127.0.0.1:789</span><span style="color:#D73A49;">0&gt;</span></span>
<span class="line"><span style="color:#6F42C1;">npm</span><span style="color:#24292E;"> </span><span style="color:#032F62;">config</span><span style="color:#24292E;"> </span><span style="color:#032F62;">set</span><span style="color:#24292E;"> </span><span style="color:#032F62;">https-proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://127.0.0.1:789</span><span style="color:#D73A49;">0&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A737D;"># yarn</span></span>
<span class="line"><span style="color:#6F42C1;">yarn</span><span style="color:#24292E;"> </span><span style="color:#032F62;">config</span><span style="color:#24292E;"> </span><span style="color:#032F62;">set</span><span style="color:#24292E;"> </span><span style="color:#032F62;">proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://127.0.0.1:789</span><span style="color:#D73A49;">0&gt;</span></span>
<span class="line"><span style="color:#6F42C1;">yarn</span><span style="color:#24292E;"> </span><span style="color:#032F62;">config</span><span style="color:#24292E;"> </span><span style="color:#032F62;">set</span><span style="color:#24292E;"> </span><span style="color:#032F62;">https-proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://127.0.0.1:789</span><span style="color:#D73A49;">0&gt;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><p>If you need to specify credentials, they can be passed in the url using the following syntax.</p><div class="language- vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki github-dark-dimmed vp-code-dark"><code><span class="line"><span style="color:#adbac7;">[&lt;http://user_name:password@proxy.company.com:8080&gt;](&lt;http://user_name:password@proxy.company.com:8080/&gt;)</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#24292e;">[&lt;http://user_name:password@proxy.company.com:8080&gt;](&lt;http://user_name:password@proxy.company.com:8080/&gt;)</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>Further exploration of the <a href="https://npmjs.org/doc/config.html" target="_blank" rel="noreferrer">npm config documentation</a> showed that the <code>npm config set</code> command sets the proxy configuration in your <code>.npmrc</code> file. You can also set the proxy configuration as a command line argument or environment variable.</p><p>Configuration parameters can be specified using <code>--</code> when executing npm. So the proxy could also be specified as follows.</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki github-dark-dimmed vp-code-dark"><code><span class="line"><span style="color:#F69D50;">npm</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">--https-proxy=http://proxy.company.com:8080</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">-g</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">install</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">karma</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">npm</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">--https-proxy=http://proxy.company.com:8080</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-g</span><span style="color:#24292E;"> </span><span style="color:#032F62;">install</span><span style="color:#24292E;"> </span><span style="color:#032F62;">karma</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>To pass configurattion parameters to npm as environment variables, they must be prefixed with <code>npm_config_</code>. The proxy configuration could be set with environment variables as follows.</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki github-dark-dimmed vp-code-dark"><code><span class="line"><span style="color:#F47067;">export</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">npm_config_proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://proxy.company.com:808</span><span style="color:#F47067;">0&gt;</span></span>
<span class="line"><span style="color:#F47067;">export</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">npm_config_https_proxy</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">&lt;</span><span style="color:#96D0FF;">http://proxy.company.com:808</span><span style="color:#F47067;">0&gt;</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#D73A49;">export</span><span style="color:#24292E;"> </span><span style="color:#032F62;">npm_config_proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://proxy.company.com:808</span><span style="color:#D73A49;">0&gt;</span></span>
<span class="line"><span style="color:#D73A49;">export</span><span style="color:#24292E;"> </span><span style="color:#032F62;">npm_config_https_proxy</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">http://proxy.company.com:808</span><span style="color:#D73A49;">0&gt;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div>`,10))])}const x=o(i,[["render",y]]);export{A as __pageData,x as default};