We've hit a strange problem where phantomjs-prebuilt will attempt to use a proxy for a server that doesn't require proxy access, and will use the wrong proxy for the http scheme specified in phantomjs CDN URL. In part this seems to be because of the way node/npm prioritises environment variables over the .npmrc in the project.
In the scenario that:
phantomjs_cdnurl is defined with an http:// address (i.e. that server resides on an internal network),
https_proxy is defined in the environment
no_proxy is defined in the environment and includes the domain name for phantomjs_cdnurl
We've hit a strange problem where phantomjs-prebuilt will attempt to use a proxy for a server that doesn't require proxy access, and will use the wrong proxy for the http scheme specified in phantomjs CDN URL. In part this seems to be because of the way node/npm prioritises environment variables over the .npmrc in the project.
In the scenario that:
phantomjs_cdnurl
is defined with anhttp://
address (i.e. that server resides on an internal network),https_proxy
is defined in the environmentno_proxy
is defined in the environment and includes the domain name forphantomjs_cdnurl
Assuming the code at https://github.com/Medium/phantomjs/blob/master/install.js#L154 is where this is setup - that behaviour makes sense.
Ideally the use of a proxy would be based on:
phantomjs_cdnurl
(oroptions.uri
) appears inno_proxy
And the type of proxy would be based on:
phantomjs_cdnurl
(oroptions.uri
)As a slightly obfuscated example of it failing today: