Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sass
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
楚学文
node-sass
Commits
5dba770e
Commit
5dba770e
authored
Sep 26, 2016
by
xzyfer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Factor our proxy resolution for testability
parent
3a4e9c6c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
102 additions
and
24 deletions
+102
-24
package.json
package.json
+1
-1
install.js
scripts/install.js
+2
-23
proxy.js
scripts/util/proxy.js
+22
-0
proxy.js
test/scripts/util/proxy.js
+77
-0
No files found.
package.json
View file @
5dba770e
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
"install"
:
"node scripts/install.js"
,
"install"
:
"node scripts/install.js"
,
"postinstall"
:
"node scripts/build.js"
,
"postinstall"
:
"node scripts/build.js"
,
"lint"
:
"node_modules/.bin/eslint bin/node-sass lib scripts test"
,
"lint"
:
"node_modules/.bin/eslint bin/node-sass lib scripts test"
,
"test"
:
"node_modules/.bin/mocha test"
,
"test"
:
"node_modules/.bin/mocha test
/{*,**/**}.js
"
,
"build"
:
"node scripts/build.js --force"
,
"build"
:
"node scripts/build.js --force"
,
"prepublish"
:
"not-in-install && node scripts/prepublish.js || in-install"
"prepublish"
:
"not-in-install && node scripts/prepublish.js || in-install"
},
},
...
...
scripts/install.js
View file @
5dba770e
...
@@ -10,6 +10,7 @@ var fs = require('fs'),
...
@@ -10,6 +10,7 @@ var fs = require('fs'),
request
=
require
(
'request'
),
request
=
require
(
'request'
),
log
=
require
(
'npmlog'
),
log
=
require
(
'npmlog'
),
pkg
=
require
(
'../package.json'
),
pkg
=
require
(
'../package.json'
),
proxy
=
require
(
'./util/proxy'
),
userAgent
=
require
(
'./util/useragent'
);
userAgent
=
require
(
'./util/useragent'
);
/**
/**
...
@@ -51,7 +52,7 @@ function download(url, dest, cb) {
...
@@ -51,7 +52,7 @@ function download(url, dest, cb) {
var
options
=
{
var
options
=
{
rejectUnauthorized
:
false
,
rejectUnauthorized
:
false
,
proxy
:
getP
roxy
(),
proxy
:
p
roxy
(),
timeout
:
60000
,
timeout
:
60000
,
headers
:
{
headers
:
{
'User-Agent'
:
userAgent
(),
'User-Agent'
:
userAgent
(),
...
@@ -96,28 +97,6 @@ function download(url, dest, cb) {
...
@@ -96,28 +97,6 @@ function download(url, dest, cb) {
}
}
/**
/**
* Determine the proxy settings configured by npm
*
* It's possible to configure npm to use a proxy different
* from the system defined proxy. This can be done via the
* `npm config` CLI or the `.npmrc` config file.
*
* If a proxy has been configured in this way we must
* tell request explicitly to use it.
*
* Otherwise we can trust request to the right thing.
*
* @return {String} the proxy configured by npm or an empty string
* @api private
*/
function
getProxy
()
{
return
''
||
process
.
env
.
npm_config_https_proxy
||
process
.
env
.
npm_config_proxy
||
process
.
env
.
npm_config_http_proxy
;
}
/**
* Check and download binary
* Check and download binary
*
*
* @api private
* @api private
...
...
scripts/util/proxy.js
0 → 100644
View file @
5dba770e
/**
* Determine the proxy settings configured by npm
*
* It's possible to configure npm to use a proxy different
* from the system defined proxy. This can be done via the
* `npm config` CLI or the `.npmrc` config file.
*
* If a proxy has been configured in this way we must
* tell request explicitly to use it.
*
* Otherwise we can trust request to the right thing.
*
* @return {String} the proxy configured by npm or an empty string
* @api private
*/
module
.
exports
=
function
()
{
return
process
.
env
.
npm_config_https_proxy
||
process
.
env
.
npm_config_proxy
||
process
.
env
.
npm_config_http_proxy
||
''
;
};
test/scripts/util/proxy.js
0 → 100644
View file @
5dba770e
var
assert
=
require
(
'assert'
),
proxy
=
require
(
'../../../scripts/util/proxy'
);
describe
(
'proxy'
,
function
()
{
var
oldEnvironment
;
beforeEach
(
function
()
{
oldEnvironment
=
process
.
env
;
});
afterEach
(
function
()
{
process
.
env
=
oldEnvironment
;
});
describe
(
'without an npm proxy config'
,
function
()
{
delete
process
.
env
.
npm_config_https_proxy
;
delete
process
.
env
.
npm_config_proxy
;
delete
process
.
env
.
npm_config_http_proxy
;
it
(
'should return an empty string'
,
function
()
{
assert
.
strictEqual
(
''
,
proxy
());
});
it
(
'should ignore system proxy environment variables'
,
function
()
{
process
.
env
.
HTTPS_PROXY
=
'http://https_proxy.com'
;
process
.
env
.
PROXY
=
'http://proxy.com'
;
process
.
env
.
HTTP_PROXY
=
'http://http_proxy.com'
;
assert
.
strictEqual
(
''
,
proxy
());
});
});
describe
(
'with an npm proxy config'
,
function
()
{
beforeEach
(
function
()
{
process
.
env
.
npm_config_https_proxy
=
'http://https_proxy.com'
;
process
.
env
.
npm_config_proxy
=
'http://proxy.com'
;
process
.
env
.
npm_config_http_proxy
=
'http://http_proxy.com'
;
});
describe
(
'https_proxy'
,
function
()
{
it
(
'should have the highest precedence'
,
function
()
{
assert
.
strictEqual
(
process
.
env
.
npm_config_https_proxy
,
proxy
());
});
});
describe
(
'proxy'
,
function
()
{
it
(
'should have the higher precedence than https_proxy'
,
function
()
{
assert
.
strictEqual
(
process
.
env
.
npm_config_https_proxy
,
proxy
());
delete
process
.
env
.
npm_config_https_proxy
;
assert
.
strictEqual
(
process
.
env
.
npm_config_proxy
,
proxy
());
});
it
(
'should have the lower precedence than http_proxy'
,
function
()
{
delete
process
.
env
.
npm_config_https_proxy
;
assert
.
strictEqual
(
process
.
env
.
npm_config_proxy
,
proxy
());
delete
process
.
env
.
npm_config_proxy
;
assert
.
strictEqual
(
process
.
env
.
npm_config_http_proxy
,
proxy
());
});
});
describe
(
'http_proxy'
,
function
()
{
it
(
'should have the lowest precedence'
,
function
()
{
assert
.
strictEqual
(
process
.
env
.
npm_config_https_proxy
,
proxy
());
delete
process
.
env
.
npm_config_https_proxy
;
assert
.
strictEqual
(
process
.
env
.
npm_config_proxy
,
proxy
());
delete
process
.
env
.
npm_config_proxy
;
assert
.
strictEqual
(
process
.
env
.
npm_config_http_proxy
,
proxy
());
});
});
});
});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment