Skip to content

Commit ef00666

Browse files
author
laland
committed
adds "exportAsDefault"
1 parent 25206b3 commit ef00666

File tree

3 files changed

+29
-12
lines changed

3 files changed

+29
-12
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,13 @@ require("html?interpolate=require!./file.ftl");
141141
<div>${require('./components/gallery.html')}</div>
142142
```
143143

144-
### Export format
144+
### Export formats
145145

146-
By default HTML is exported with ```module.exports```, but you can use ```exportAsEs6Default``` flag to export it as ES6 default export (via ```exports.default```)
146+
There are different export formats available:
147+
148+
+ ```module.exports``` (default, cjs format). "Hello world" becomes ```module.exports = "Hello world";```
149+
+ ```exports.default``` (when ```exportAsDefault``` param is set, es6to5 format). "Hello world" becomes ```exports.default = "Hello world";```
150+
+ ```exports default``` (when ```exportAsEs6Default``` param is set, es6 format). "Hello world" becomes ```exports default "Hello world";```
147151

148152
### Advanced options
149153

index.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,15 @@ module.exports = function(content) {
125125
content = JSON.stringify(content);
126126
}
127127

128-
var exportsString = config.exportAsEs6Default? "exports.default": "module.exports";
129-
130-
return exportsString + " = " + content.replace(/xxxHTMLLINKxxx[0-9\.]+xxx/g, function(match) {
128+
var exportsString = "module.exports = ";
129+
if (config.exportAsDefault) {
130+
exportsString = "exports.default = ";
131+
132+
} else if (config.exportAsEs6Default) {
133+
exportsString = "exports default ";
134+
}
135+
136+
return exportsString + content.replace(/xxxHTMLLINKxxx[0-9\.]+xxx/g, function(match) {
131137
if(!data[match]) return match;
132138
return '" + require(' + JSON.stringify(loaderUtils.urlToRequest(data[match], root)) + ') + "';
133139
}) + ";";

test/loaderTest.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,18 @@ describe("loader", function() {
126126
'module.exports = "<a href=\\"${list.href}\\"><img src=\\"" + require("./test.jpg") + "\\" /></a>";'
127127
);
128128
});
129-
it("should export as es6 default export", function() {
130-
loader.call({
131-
query: "?exportAsEs6Default"
132-
}, '<p>Hello world!</p>').should.be.eql(
133-
'exports.default = "<p>Hello world!</p>";'
134-
);
135-
});
129+
it("should export as default export for es6to5 transpilation", function() {
130+
loader.call({
131+
query: "?exportAsDefault"
132+
}, '<p>Hello world!</p>').should.be.eql(
133+
'exports.default = "<p>Hello world!</p>";'
134+
);
135+
});
136+
it("should export as es6 default export", function() {
137+
loader.call({
138+
query: "?exportAsEs6Default"
139+
}, '<p>Hello world!</p>').should.be.eql(
140+
'exports default "<p>Hello world!</p>";'
141+
);
142+
});
136143
});

0 commit comments

Comments
 (0)