Skip to content

Commit dfbd560

Browse files
committed
folder template-html-loader into vue-loader
1 parent fadb53b commit dfbd560

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

lib/loader.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ var rewriters = {
1717
style: require.resolve('./style-rewriter')
1818
}
1919

20+
var templateLoader = require.resolve('./template-loader')
21+
2022
module.exports = function (content) {
2123

2224
var defaultLoaders = {
@@ -105,7 +107,7 @@ module.exports = function (content) {
105107
// unknown lang, infer the loader to be used
106108
switch (type) {
107109
case 'template':
108-
return defaultLoaders.html + '!' + rewriter + 'template-html-loader?raw&engine=' + lang + '!'
110+
return defaultLoaders.html + '!' + rewriter + templateLoader + '?raw&engine=' + lang + '!'
109111
case 'style':
110112
return defaultLoaders.css + '!' + rewriter + lang + '!'
111113
case 'script':

lib/template-loader.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
var cons = require('consolidate')
2+
var loaderUtils = require('loader-utils')
3+
var extname = require('path').extname
4+
5+
module.exports = function (content) {
6+
this.cacheable && this.cacheable()
7+
var callback = this.async()
8+
var opt = loaderUtils.parseQuery(this.query)
9+
10+
function exportContent (content) {
11+
if (opt.raw) {
12+
callback(null, content)
13+
} else {
14+
callback(null, 'module.exports = ' + JSON.stringify(content))
15+
}
16+
}
17+
18+
// with no engine given, use the file extension as engine
19+
if (!opt.engine) {
20+
opt.engine = extname(this.request).substr(1).toLowerCase()
21+
}
22+
23+
if (!cons[opt.engine]) {
24+
throw new Error(
25+
'Template engine \'' + opt.engine + '\' ' +
26+
'isn\'t available in Consolidate.js'
27+
)
28+
}
29+
30+
// for relative includes
31+
opt.filename = this.resourcePath
32+
33+
cons[opt.engine].render(content, opt, function (err, html) {
34+
if (err) {
35+
throw err
36+
}
37+
exportContent(html)
38+
})
39+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
},
3131
"dependencies": {
3232
"autoprefixer": "^6.0.3",
33+
"consolidate": "^0.14.0",
3334
"de-indent": "^1.0.0",
3435
"hash-sum": "^1.0.2",
3536
"loader-utils": "^0.2.10",
@@ -73,7 +74,6 @@
7374
"rimraf": "^2.4.0",
7475
"vue-style-loader": "^1.0.0",
7576
"stylus-loader": "^1.4.0",
76-
"template-html-loader": "^0.0.3",
7777
"vue-hot-reload-api": "^1.2.0",
7878
"vue-html-loader": "^1.0.0",
7979
"webpack": "^1.12.2"

0 commit comments

Comments
 (0)