Skip to content

Commit f536e8b

Browse files
Jasper De Moordevongovett
authored andcommitted
fix relative paths being the same as node modules (#1556)
1 parent cc6018e commit f536e8b

6 files changed

Lines changed: 23 additions & 5 deletions

File tree

src/assets/LESSAsset.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const promisify = require('../utils/promisify');
44
const Resolver = require('../Resolver');
55
const fs = require('../utils/fs');
66
const path = require('path');
7+
const parseCSSImport = require('../utils/parseCSSImport');
78

89
class LESSAsset extends Asset {
910
constructor(name, options) {
@@ -80,6 +81,7 @@ function getFileManager(less, options) {
8081
}
8182

8283
async loadFile(filename, currentDirectory) {
84+
filename = parseCSSImport(filename);
8385
let resolved = await resolver.resolve(
8486
filename,
8587
path.join(currentDirectory, 'index')

src/assets/SASSAsset.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const promisify = require('../utils/promisify');
44
const path = require('path');
55
const os = require('os');
66
const Resolver = require('../Resolver');
7+
const parseCSSImport = require('../utils/parseCSSImport');
78

89
class SASSAsset extends Asset {
910
constructor(name, options) {
@@ -50,11 +51,7 @@ class SASSAsset extends Asset {
5051
? opts.importer
5152
: [opts.importer];
5253
opts.importer.push((url, prev, done) => {
53-
if (!/^(~|\.\/|\/)/.test(url)) {
54-
url = './' + url;
55-
} else if (!/^(~\/|\.\/|\/)/.test(url)) {
56-
url = url.substring(1);
57-
}
54+
url = parseCSSImport(url);
5855
resolver
5956
.resolve(url, prev === 'stdin' ? this.name : prev)
6057
.then(resolved => resolved.path)

src/utils/parseCSSImport.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function parseCSSImport(url) {
2+
if (!/^(~|\.\/|\/)/.test(url)) {
3+
url = './' + url;
4+
} else if (!/^(~\/|\.\/|\/)/.test(url)) {
5+
url = url.substring(1);
6+
}
7+
return url;
8+
}
9+
10+
module.exports = parseCSSImport;

test/integration/less-import/base.less

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@import '~external-less/a.less';
2+
13
@base: #f938ab;
24

35
.base {

test/integration/less-import/node_modules/external-less/a.less

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/integration/less-import/node_modules/external-less/package.json

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)