@@ -6,9 +6,8 @@ const hotApi = require.resolve('./lib/hot-api.js');
6
6
7
7
const { version } = require ( 'svelte/package.json' ) ;
8
8
const major_version = + version [ 0 ] ;
9
- const { compile, preprocess } = major_version >= 3
10
- ? require ( 'svelte/compiler' )
11
- : require ( 'svelte' ) ;
9
+ const { compile, preprocess } =
10
+ major_version >= 3 ? require ( 'svelte/compiler' ) : require ( 'svelte' ) ;
12
11
13
12
const pluginOptions = {
14
13
externalDependencies : true ,
@@ -21,7 +20,7 @@ const pluginOptions = {
21
20
shared : true ,
22
21
style : true ,
23
22
script : true ,
24
- markup : true
23
+ markup : true ,
25
24
} ;
26
25
27
26
function makeHot ( id , code , hotOptions ) {
@@ -71,11 +70,17 @@ function normalize(compiled) {
71
70
// compatibility
72
71
const js = compiled . js || { code : compiled . code , map : compiled . map } ;
73
72
74
- const css = compiled . css && typeof compiled . css === 'object'
75
- ? compiled . css
76
- : { code : compiled . css , map : compiled . cssMap } ;
73
+ const css =
74
+ compiled . css && typeof compiled . css === 'object'
75
+ ? compiled . css
76
+ : { code : compiled . css , map : compiled . cssMap } ;
77
77
78
- return { js, css, ast : compiled . ast , warnings : compiled . warnings || compiled . stats . warnings || [ ] } ;
78
+ return {
79
+ js,
80
+ css,
81
+ ast : compiled . ast ,
82
+ warnings : compiled . warnings || compiled . stats . warnings || [ ] ,
83
+ } ;
79
84
}
80
85
81
86
const warned = { } ;
@@ -85,7 +90,9 @@ function deprecatePreprocessOptions(options) {
85
90
[ 'markup' , 'style' , 'script' ] . forEach ( kind => {
86
91
if ( options [ kind ] ) {
87
92
if ( ! warned [ kind ] ) {
88
- console . warn ( `[svelte-loader] DEPRECATION: options.${ kind } is now options.preprocess.${ kind } ` ) ;
93
+ console . warn (
94
+ `[svelte-loader] DEPRECATION: options.${ kind } is now options.preprocess.${ kind } `
95
+ ) ;
89
96
warned [ kind ] = true ;
90
97
}
91
98
preprocessOptions [ kind ] = options [ kind ] ;
@@ -99,7 +106,10 @@ const virtualModuleInstances = new Map();
99
106
100
107
module . exports = function ( source , map ) {
101
108
if ( this . _compiler && ! virtualModuleInstances . has ( this . _compiler ) ) {
102
- virtualModuleInstances . set ( this . _compiler , new VirtualModules ( this . _compiler ) ) ;
109
+ virtualModuleInstances . set (
110
+ this . _compiler ,
111
+ new VirtualModules ( this . _compiler )
112
+ ) ;
103
113
}
104
114
105
115
const virtualModules = virtualModuleInstances . get ( this . _compiler ) ;
@@ -109,12 +119,13 @@ module.exports = function(source, map) {
109
119
const options = Object . assign ( { } , this . options , getOptions ( this ) ) ;
110
120
const callback = this . async ( ) ;
111
121
112
- const isServer = this . target === 'node' || ( options . generate && options . generate == 'ssr' ) ;
122
+ const isServer =
123
+ this . target === 'node' || ( options . generate && options . generate == 'ssr' ) ;
113
124
const isProduction = this . minimize || process . env . NODE_ENV === 'production' ;
114
125
115
126
const compileOptions = {
116
127
filename : this . resourcePath ,
117
- format : options . format || ( major_version >= 3 ? 'esm' : 'es' )
128
+ format : options . format || ( major_version >= 3 ? 'esm' : 'es' ) ,
118
129
} ;
119
130
120
131
const handleWarning = warning => this . emitWarning ( new Error ( warning ) ) ;
@@ -131,50 +142,61 @@ module.exports = function(source, map) {
131
142
if ( ! pluginOptions [ option ] ) compileOptions [ option ] = options [ option ] ;
132
143
}
133
144
145
+ if ( options . emitCss ) compileOptions . css = false ;
146
+
134
147
deprecatePreprocessOptions ( options ) ;
135
148
options . preprocess . filename = compileOptions . filename ;
136
149
137
- preprocess ( source , options . preprocess ) . then ( processed => {
138
- if ( processed . dependencies && this . addDependency ) {
139
- for ( let dependency of processed . dependencies ) {
140
- this . addDependency ( dependency ) ;
141
- }
142
- }
143
-
144
- let { js, css, warnings } = normalize ( compile ( processed . toString ( ) , compileOptions ) ) ;
145
-
146
- if ( major_version >= 3 ) {
147
- warnings . forEach (
148
- options . onwarn
149
- ? warning => options . onwarn ( warning , handleWarning )
150
- : handleWarning
151
- ) ;
152
- }
153
-
154
- if ( options . hotReload && ! isProduction && ! isServer ) {
155
- const hotOptions = Object . assign ( { } , options . hotOptions ) ;
156
- const id = JSON . stringify ( relative ( process . cwd ( ) , compileOptions . filename ) ) ;
157
- js . code = makeHot ( id , js . code , hotOptions ) ;
158
- }
159
-
160
- if ( options . emitCss && css . code ) {
161
- const cssFilepath = compileOptions . filename . replace (
162
- / \. [ ^ / . ] + $ / ,
163
- `.svelte.css`
164
- ) ;
165
-
166
- css . code += '\n/*# sourceMappingURL=' + css . map . toUrl ( ) + '*/' ;
167
- js . code = js . code + `\nimport '${ posixify ( cssFilepath ) } ';\n` ;
168
-
169
- if ( virtualModules ) {
170
- virtualModules . writeModule ( cssFilepath , css . code ) ;
171
- }
172
- }
173
-
174
- callback ( null , js . code , js . map ) ;
175
- } , err => callback ( err ) ) . catch ( err => {
176
- // wrap error to provide correct
177
- // context when logging to console
178
- callback ( new Error ( `${ err . name } : ${ err . toString ( ) } ` ) ) ;
179
- } ) ;
150
+ preprocess ( source , options . preprocess )
151
+ . then (
152
+ processed => {
153
+ if ( processed . dependencies && this . addDependency ) {
154
+ for ( let dependency of processed . dependencies ) {
155
+ this . addDependency ( dependency ) ;
156
+ }
157
+ }
158
+
159
+ let { js, css, warnings } = normalize (
160
+ compile ( processed . toString ( ) , compileOptions )
161
+ ) ;
162
+
163
+ if ( major_version >= 3 ) {
164
+ warnings . forEach (
165
+ options . onwarn
166
+ ? warning => options . onwarn ( warning , handleWarning )
167
+ : handleWarning
168
+ ) ;
169
+ }
170
+
171
+ if ( options . hotReload && ! isProduction && ! isServer ) {
172
+ const hotOptions = Object . assign ( { } , options . hotOptions ) ;
173
+ const id = JSON . stringify (
174
+ relative ( process . cwd ( ) , compileOptions . filename )
175
+ ) ;
176
+ js . code = makeHot ( id , js . code , hotOptions ) ;
177
+ }
178
+
179
+ if ( options . emitCss && css . code ) {
180
+ const cssFilepath = compileOptions . filename . replace (
181
+ / \. [ ^ / . ] + $ / ,
182
+ `.svelte.css`
183
+ ) ;
184
+
185
+ css . code += '\n/*# sourceMappingURL=' + css . map . toUrl ( ) + '*/' ;
186
+ js . code = js . code + `\nimport '${ posixify ( cssFilepath ) } ';\n` ;
187
+
188
+ if ( virtualModules ) {
189
+ virtualModules . writeModule ( cssFilepath , css . code ) ;
190
+ }
191
+ }
192
+
193
+ callback ( null , js . code , js . map ) ;
194
+ } ,
195
+ err => callback ( err )
196
+ )
197
+ . catch ( err => {
198
+ // wrap error to provide correct
199
+ // context when logging to console
200
+ callback ( new Error ( `${ err . name } : ${ err . toString ( ) } ` ) ) ;
201
+ } ) ;
180
202
} ;
0 commit comments