@@ -206,28 +206,33 @@ export function pitch(request) {
206206 }
207207
208208 let locals ;
209- let result = '' ;
209+
210+ const esModule =
211+ typeof options . esModule !== 'undefined' ? options . esModule : false ;
212+ const namedExport =
213+ esModule && options . modules && options . modules . namedExport ;
210214
211215 try {
212- let dependencies ;
213- let exports = evalModuleCode ( this , source , request ) ;
214-
215- if (
216- options . modules &&
217- options . modules . namedExport &&
218- // eslint-disable-next-line no-underscore-dangle
219- exports . __esModule
220- ) {
221- Object . keys ( exports ) . forEach ( ( key ) => {
216+ const originalExports = evalModuleCode ( this , source , request ) ;
217+
218+ // eslint-disable-next-line no-underscore-dangle
219+ exports = originalExports . __esModule
220+ ? originalExports . default
221+ : originalExports ;
222+
223+ if ( namedExport ) {
224+ locals = '' ;
225+
226+ Object . keys ( originalExports ) . forEach ( ( key ) => {
222227 if ( key !== 'default' ) {
223- result += `\nexport const ${ key } = "${ exports [ key ] } ";` ;
228+ locals += `\nexport const ${ key } = "${ originalExports [ key ] } ";` ;
224229 }
225230 } ) ;
231+ } else {
232+ locals = exports && exports . locals ;
226233 }
227234
228- // eslint-disable-next-line no-underscore-dangle
229- exports = exports . __esModule ? exports . default : exports ;
230- locals = exports && exports . locals ;
235+ let dependencies ;
231236
232237 if ( ! Array . isArray ( exports ) ) {
233238 dependencies = [ [ null , exports ] ] ;
@@ -244,23 +249,21 @@ export function pitch(request) {
244249 } ;
245250 } ) ;
246251 }
252+
247253 addDependencies ( dependencies ) ;
248254 } catch ( e ) {
249255 return callback ( e ) ;
250256 }
251257
252- const esModule =
253- typeof options . esModule !== 'undefined' ? options . esModule : false ;
254-
255- if ( ! result ) {
256- result += locals
257- ? `\n${
258+ const result = locals
259+ ? namedExport
260+ ? locals
261+ : `\n${
258262 esModule ? 'export default' : 'module.exports ='
259263 } ${ JSON . stringify ( locals ) } ;`
260- : esModule
261- ? `\nexport {};`
262- : '' ;
263- }
264+ : esModule
265+ ? `\nexport {};`
266+ : '' ;
264267
265268 let resultSource = `// extracted by ${ pluginName } ` ;
266269
0 commit comments