@@ -5,74 +5,69 @@ var beautify = require('js-beautify').js_beautify
5
5
var transpile = require ( 'vue-template-es2015-compiler' )
6
6
var hotReloadAPIPath = normalize . dep ( 'vue-hot-reload-api' )
7
7
var transformRequire = require ( './modules/transform-require' )
8
- var rewriteInlineStyles = require ( './modules/inline-style' )
9
8
10
9
module . exports = function ( html ) {
11
10
this . cacheable ( )
12
- var cb = this . async ( )
13
11
var isServer = this . target === 'node'
14
12
var isProduction = this . minimize || process . env . NODE_ENV === 'production'
15
13
var vueOptions = this . options . __vueOptions__ || { }
16
14
var options = loaderUtils . getOptions ( this ) || { }
17
15
18
- Promise . all ( [
19
- transformRequire ( options . transformToRequire ) ,
20
- rewriteInlineStyles ( )
21
- ] ) . then ( defaultCompilerModules => {
22
- // user compiler modules
23
- var userCompilerModules = options . compilerModules || vueOptions . compilerModules
24
- // for HappyPack cross-process use cases
25
- if ( typeof userCompilerModules === 'string' ) {
26
- userCompilerModules = require ( userCompilerModules )
27
- }
16
+ var defaultModules = [ transformRequire ( options . transformToRequire ) ]
17
+ var userModules = vueOptions . compilerModules || options . compilerModules
18
+ // for HappyPack cross-process use cases
19
+ if ( typeof userModules === 'string' ) {
20
+ userModules = require ( userModules )
21
+ }
28
22
29
- var compiled = compiler . compile ( html , {
30
- preserveWhitespace : options . preserveWhitespace ,
31
- modules : defaultCompilerModules . concat ( userCompilerModules || [ ] )
32
- } )
23
+ var compilerOptions = {
24
+ preserveWhitespace : options . preserveWhitespace ,
25
+ modules : defaultModules . concat ( userModules || [ ] )
26
+ }
33
27
34
- // tips
35
- if ( compiled . tips && compiled . tips . length ) {
36
- compiled . tips . forEach ( tip => {
37
- this . emitWarning ( tip )
38
- } )
39
- }
28
+ var compiled = compiler . compile ( html , compilerOptions )
40
29
41
- var code
42
- if ( compiled . errors && compiled . errors . length ) {
43
- this . emitError (
44
- `\n Error compiling template:\n${ pad ( html ) } \n` +
45
- compiled . errors . map ( e => ` - ${ e } ` ) . join ( '\n' ) + '\n'
46
- )
47
- code = 'module.exports={render:function(){},staticRenderFns:[]}'
48
- } else {
49
- var bubleOptions = options . buble
50
- code = transpile ( 'module.exports={' +
51
- 'render:' + toFunction ( compiled . render ) + ',' +
52
- 'staticRenderFns: [' + compiled . staticRenderFns . map ( toFunction ) . join ( ',' ) + ']' +
53
- '}' , bubleOptions )
54
- // mark with stripped (this enables Vue to use correct runtime proxy detection)
55
- if ( ! isProduction && (
56
- ! bubleOptions ||
57
- ! bubleOptions . transforms ||
58
- bubleOptions . transforms . stripWith !== false
59
- ) ) {
60
- code += `\nmodule.exports.render._withStripped = true`
61
- }
62
- }
63
- // hot-reload
64
- if ( ! isServer && ! isProduction ) {
65
- code +=
66
- '\nif (module.hot) {\n' +
67
- ' module.hot.accept()\n' +
68
- ' if (module.hot.data) {\n' +
69
- ' require("' + hotReloadAPIPath + '").rerender("' + options . id + '", module.exports)\n' +
70
- ' }\n' +
71
- '}'
30
+ // tips
31
+ if ( compiled . tips && compiled . tips . length ) {
32
+ compiled . tips . forEach ( tip => {
33
+ this . emitWarning ( tip )
34
+ } )
35
+ }
36
+
37
+ var code
38
+ if ( compiled . errors && compiled . errors . length ) {
39
+ this . emitError (
40
+ `\n Error compiling template:\n${ pad ( html ) } \n` +
41
+ compiled . errors . map ( e => ` - ${ e } ` ) . join ( '\n' ) + '\n'
42
+ )
43
+ code = 'module.exports={render:function(){},staticRenderFns:[]}'
44
+ } else {
45
+ var bubleOptions = options . buble
46
+ code = transpile ( 'module.exports={' +
47
+ 'render:' + toFunction ( compiled . render ) + ',' +
48
+ 'staticRenderFns: [' + compiled . staticRenderFns . map ( toFunction ) . join ( ',' ) + ']' +
49
+ '}' , bubleOptions )
50
+ // mark with stripped (this enables Vue to use correct runtime proxy detection)
51
+ if ( ! isProduction && (
52
+ ! bubleOptions ||
53
+ ! bubleOptions . transforms ||
54
+ bubleOptions . transforms . stripWith !== false
55
+ ) ) {
56
+ code += `\nmodule.exports.render._withStripped = true`
72
57
}
58
+ }
59
+ // hot-reload
60
+ if ( ! isServer && ! isProduction ) {
61
+ code +=
62
+ '\nif (module.hot) {\n' +
63
+ ' module.hot.accept()\n' +
64
+ ' if (module.hot.data) {\n' +
65
+ ' require("' + hotReloadAPIPath + '").rerender("' + options . id + '", module.exports)\n' +
66
+ ' }\n' +
67
+ '}'
68
+ }
73
69
74
- cb ( null , code )
75
- } ) . catch ( cb )
70
+ return code
76
71
}
77
72
78
73
function toFunction ( code ) {
0 commit comments