| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | const { resolveCompiler } = require('./compiler')const clientCache = new WeakMap()const serverCache = new WeakMap()exports.resolveScript = function resolveScript(  descriptor,  scopeId,  options,  loaderContext) {  if (!descriptor.script && !descriptor.scriptSetup) {    return null  }  const { compiler } = resolveCompiler(loaderContext.rootContext, loaderContext)  if (!compiler.compileScript) {    if (descriptor.scriptSetup) {      loaderContext.emitError(        'The version of Vue you are using does not support <script setup>. ' +          'Please upgrade to 2.7 or above.'      )    }    return descriptor.script  }  const isProd =    loaderContext.mode === 'production' || process.env.NODE_ENV === 'production'  const isServer = options.optimizeSSR || loaderContext.target === 'node'  const cacheToUse = isServer ? serverCache : clientCache  const cached = cacheToUse.get(descriptor)  if (cached) {    return cached  }  let resolved = null  try {    resolved = compiler.compileScript(descriptor, {      id: scopeId,      isProd,      babelParserPlugins: options.babelParserPlugins    })  } catch (e) {    loaderContext.emitError(e)  }  cacheToUse.set(descriptor, resolved)  return resolved}
 |