Skip to content

Commit b37922c

Browse files
authored
Fix currentFileInfo and index properties on nodes (#3602)
These fields are accessed by other tools such as parcel (for resolving local asset URLs). As per 257efdd the behavior with (at least) parcel for relative paths in sub-directries changed. Prior to that commit (last release 3.12.2) assets were resolved relative to the less module that contains the `url(..)`. From release 3.13.0 parcel resolves assets relative to the root less module, because no `currentFileInfo` is available. This is caused by tree nodes setting their prototype to an instance of `Node`. This leaves the `self` reference in `Node`s constructor pointing to the prototype, not the actual instance the data is set on. Replacing this with properties defined on `Node`s prototype fixes this.
1 parent 870f9b2 commit b37922c

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

packages/less/src/less/tree/node.js

+6-7
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@ class Node {
1111
this.nodeVisible = undefined;
1212
this.rootNode = null;
1313
this.parsed = null;
14+
}
1415

15-
const self = this;
16-
Object.defineProperty(this, 'currentFileInfo', {
17-
get: function() { return self.fileInfo(); }
18-
});
19-
Object.defineProperty(this, 'index', {
20-
get: function() { return self.getIndex(); }
21-
});
16+
get currentFileInfo() {
17+
return this.fileInfo();
18+
}
2219

20+
get index() {
21+
return this.getIndex();
2322
}
2423

2524
setParent(nodes, parent) {

0 commit comments

Comments
 (0)