NW.js のプロキシ設定は Chromium と Node のリクエストで異なる
NW.js のウェブエンジンのプロキシ規則を、同じデスクトップアプリが使う Node ライブラリとは別に構成します。
NW.js は同じウィンドウ内で DOM 画像を読み込み、Node ライブラリ経由で JSON を取得できます。プロキシインターフェースを選ぶ前に、リクエストを作る呼び出しを特定してください。
文書化されたウェブエンジンの経路では:
nw.App.setProxyConfig('proxy.example:8080', '');
const route = nw.App.getProxyForURL('https://www.example.com/');
第 1 引数がプロキシ規則で、第 2 引数が PAC URL です。PAC が空の場合、これは宛先スキームに固定の HTTP エンドポイントを選びます。HTTPS はサポートされるトンネル経路を使います。プロキシ認証なしの公開ページによる独立したテストでは、HTTP プロキシ一覧 のエントリがそのエンドポイントを置き換えられます。
| リクエストの生成元 | 確認するポリシー |
|---|---|
| DOM リソースまたはブラウザの fetch | NW.js ウェブエンジンのプロキシ構成 |
| Node コアの HTTP またはパッケージ固有のトランスポート | そのクライアントのエージェントまたは公開プロキシインターフェース |
getProxyForURL は DOM 読み込みに対して PAC 形式のポリシーテキストを返します。たとえば PROXY とエンドポイント、または DIRECT です。完了したリクエストがそれを使ったことを確認するものではありません。
process.env.http_proxy を変えても、すべての実装がその変数を読むわけではありません。診断には生成元またはクライアント名とその結果を付けます。アップグレードで置き換えられる node_modules のファイルに手を入れるのではなく、そのパッケージの公開設定を使ってください。SOCKS を使う Node コアの HTTPS 呼び出しでは、そのようなインターフェースの 1 つが SOCKS 対応の HTTPS エージェント です。