2011-10-17 13:25:58 +0000 2011-10-17 13:25:58 +0000
30
30
Advertisement

Windowsで認証プロキシの後ろにNPMをインストールするには?

Advertisement

WindowsでNodeとNPMの最新版を動かす必要があります。私はNode 0.5.8をインストールし、GitHubからNPMのソースをダウンロードしました。NPMをインストールするための手順はGitHubのサイトに記載されていましたが、以下のコマンドを実行すると問題が発生します。

node cli.js install npm -gf

と実行しても、以下のようなエラーメッセージで失敗してしまいます。

Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)

System Windows_NT 5.1.2600
command "...\Node\bin\node.exe" "...\npm\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN

インターネットに接続するにはプロキシでの認証が必要なので問題だと思います。しかし、インストーラーに私の認証情報を使ってログインするように指示する方法は見つかりませんでした。コマンドライン引数でプロキシのIPとログイン情報をnpmインストールに提供することは可能でしょうか?

必要であれば、Pastebinを使って完全なログを提供することができます(しかし、それ以上の関連情報を持っていないようです)。

Advertisement
Advertisement

回答 (14)

39
39
39
2012-12-03 20:05:07 +0000

set http_proxyは私にとってはとても良い働きをしてくれましたが、コマンドプロンプトを開くたびに入力しなければなりませんでした。そのため、複数の答えを組み合わせる必要がありましたが、今では私の答えは永久的なものになっています。

私の手順は以下の通りです。

  • C:\Users\YourUserName

という名前のファイルを作成する - そのファイルの中に以下のように入力する(ADドメインにいる場合):

.npmrc

  • あるいはADドメインにいない場合はこれを使用する。

proxy = http://domain\username:password@ip:port

  • ファイルを保存
  • コマンドプロンプトを開いて、proxy = http://username:password@ip:port

を使用してみてください。

npm

*上記の “IP "の代わりにIPアドレスかプロキシのURLを使用できるはずです。

あなたのプロキシの文字列は少し微調整が必要かもしれませんが、これで毎回これを追加する必要がなくなりました。

乾杯

10
10
10
2011-10-19 17:19:05 +0000

環境変数を設定するとうまくいくかもしれません。

set HTTP_PROXY=http://user:pass@server.url:port

(私の場合、これで “connect UNKNOWN "は解決するが、全く違う "socket hang up "エラーが出る。また、HTTPS_PROXY環境変数を設定してみましたが、同じ結果になりました)。

8
Advertisement
8
8
2011-11-16 16:41:09 +0000
Advertisement

私も同じ問題を抱えていましたが、この問題を解決するために行ったことは以下の通りです。

  • 次の場所に移動します。C:\Users\YourUserName
  • .npmrc という名前のファイルを作成してください。
4
4
4
2012-03-12 09:56:43 +0000

いくつか調べた結果、次のような方法で使うことができました:

  1. NTLM Authorization Proxy Server または Cntlm のような NTLM 用の別のプロキシサーバをインストールする。個人的には、いじれるし、パフォーマンスも問題ないので、 python サーバの方が好きです。

  2. 私の場合、LMとNTモードの両方を有効にしなければならなかったことに注意してください。

  3. http_proxy と https_proxy 環境変数をローカルプロキシを指すように設定します。これで npm が動くはずです。もちろん、上記の環境変数が定義されているシェルから実行されるはずです。

3
Advertisement
3
3
2013-09-04 10:46:04 +0000
Advertisement

npm set proxy http://user:pass@ip:port

npm set https-proxy http://user:pass@ip:port

ユーザー名の前に HTTP:// を入れるのを忘れないでください。私の場合はうまくいきました。

3
3
3
2013-06-13 19:12:07 +0000

私の場合は以下のように動作しました。

Windows 7の場合:

npm config set proxy xxhttp://username:password@proxyhost:port#

これで.npmrcフォルダ内にC:/users/<username>という名前のファイルが作成されるはずです。

3
Advertisement
3
3
2016-05-03 20:27:58 +0000
Advertisement

上記のそれぞれの回答では、ユーザがパスワードをテキストファイルか環境変数に書き込む必要があります。

個人的には、これらのような解決策は安全ではないので好きではありませんでした。そこで、クライアント(npm, bower, git)とプロキシ間のやり取りの中で、現在のユーザのKerberosトークンを注入するアプリケーションを書こうとしました。といっても、Active DirectoryはKerberosを独自に実装しているだけですが。

Windows 8.1のホストで毎日使っています。コード (golang) と最初のリリースのバイナリは https://github.com/nilleb/authentication-proxy にあります。

2
2
2
2012-05-02 03:41:48 +0000

この問題は、上記のように .npmrc ファイルを作成し、adduser コマンドを実行して以下の cmd プロンプトを実行すると解決しました。

npm adduser

以下のコマンドを実行して、認可されたユーザ名を持っているかどうかを確認してください。

1
Advertisement
1
1
2015-07-07 21:58:10 +0000
Advertisement

プロキシのホストとポートは、サーバ管理者やサポートから入手できます。

npm config set http_proxy http://username:password@proxyofmycomp.com:itsport
npm config set proxy http://username:password@proxyofmycomp.com:itsport

パスワードに特殊な文字がある場合は、%urlencodeで試してみてください。例:ポンド(ハッシュ)は%23に置き換えてください。

1
1
1
2015-06-18 09:54:36 +0000

少なくともWindowsでは、以下の設定で動作します。

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

つまり、(1) %5Cの代わりに`少なくともWindowsでは、以下の設定で動作します。

proxy=http://_domain_%5C_username_:_password_@ **_proxy\_ip_** :_port_

つまり、(1) %5Cの代わりにを使い(他で提案されているように)、(2) プロキシサーバのローカルマシン名の代わりにIPアドレスを使います。

1
1
1
2013-09-27 06:46:50 +0000

.npmrc

proxy = http://unam:pwd@host:port
https-proxy = http://unam:pwd@host:port
registry = http://registry.npmjs.org
```では、3つのことがすべてうまくいきました。
0
0
0
2016-02-22 06:19:01 +0000

私のために働いた解決策は以下の通りです。

npm config set http_proxy http://username:password@host/IP:port

npm config set proxy http://username:password@host/IP:port

パラメータを値に置き換える。(空)

password . (空)

host/IP . 192.36.36.36.110

port . 8080 8080

なので、私のコマンドは

npm config set http_proxy http://

npm config set proxy http:// となっています。

0
0
0
2018-01-08 22:13:37 +0000

私の場合は以下のように動作しました。

registry=http://registry.npmjs.org
proxy=http://<url.pac>
https-proxy=http://<url.pac>
http-proxy=http://<url.pac>
strict-ssl=false

ユーザー名やパスワードを入力する必要はありませんでした。

0
0
0
2016-04-29 05:14:16 +0000

CNTLMは私のために機能しませんでした。可能な限りの組み合わせを試してみたが、NPMは認証エラーを出していた。NPMは認証エラーを出していた。Fiddlerが助けに来てくれて、時間の節約になりました。インストールも設定も簡単です。FiddlerのルールをAutomatically Authenticatedに設定して、.npmrcで

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

を設定してみると、うまくいきました。)

Advertisement

関連する質問

12
7
3
6
6
Advertisement