Skip to content

Commit e188f44

Browse files
authored
Fixes #3541 (#3543)
1 parent 2870163 commit e188f44

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

packages/less/src/less-node/url-file-manager.js

+9-12
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,21 @@ class UrlFileManager extends AbstractFileManager {
2121
}
2222

2323
let urlStr = isUrlRe.test( filename ) ? filename : url.resolve(currentDirectory, filename);
24-
const urlObj = url.parse(urlStr);
24+
25+
/** native-request currently has a bug */
26+
const hackUrlStr = urlStr.indexOf('?') === -1 ? urlStr + '?' : urlStr
2527

26-
if (!urlObj.protocol) {
27-
urlObj.protocol = 'http';
28-
urlStr = urlObj.format();
29-
}
30-
31-
request.get({uri: urlStr, strictSSL: !options.insecure }, (error, res, body) => {
32-
if (error) {
33-
reject({ type: 'File', message: `resource '${urlStr}' gave this Error:\n ${error}\n` });
28+
request.get(hackUrlStr, (error, body, status) => {
29+
if (status === 404) {
30+
reject({ type: 'File', message: `resource '${urlStr}' was not found\n` });
3431
return;
3532
}
36-
if (res && res.statusCode === 404) {
37-
reject({ type: 'File', message: `resource '${urlStr}' was not found\n` });
33+
if (error) {
34+
reject({ type: 'File', message: `resource '${urlStr}' gave this Error:\n ${error}\n` });
3835
return;
3936
}
4037
if (!body) {
41-
logger.warn(`Warning: Empty body (HTTP ${res.statusCode}) returned by "${urlStr}"`);
38+
logger.warn(`Warning: Empty body (HTTP ${status}) returned by "${urlStr}"`);
4239
}
4340
fulfill({ contents: body, filename: urlStr });
4441
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.test {
2+
color: blue;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// https://github.com/less/less.js/issues/3541
2+
@import (reference) url(https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/selectors.less);
3+
@import (reference) url("https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/scope.less");
4+
@import (reference) url("https://cdn.jsdelivr.net/npm/@less/test-data/less/_main/empty.less?arg");
5+
6+
.test {
7+
color: @x;
8+
}

0 commit comments

Comments
 (0)