Home / Function/ compileModule() — vue Function Reference

compileModule() — vue Function Reference

Architecture documentation for the compileModule() function in create-bundle-runner.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  47147685_60c2_42a0_ee05_26d072a377c7["compileModule()"]
  5a1c51f2_4876_fec0_df27_1d6ef59f031a["create-bundle-runner.ts"]
  47147685_60c2_42a0_ee05_26d072a377c7 -->|defined in| 5a1c51f2_4876_fec0_df27_1d6ef59f031a
  e142ddd7_db7e_6e31_6600_9ceabc3f3fa2["createBundleRunner()"]
  e142ddd7_db7e_6e31_6600_9ceabc3f3fa2 -->|calls| 47147685_60c2_42a0_ee05_26d072a377c7
  style 47147685_60c2_42a0_ee05_26d072a377c7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/server-renderer/src/bundle-renderer/create-bundle-runner.ts lines 27–77

function compileModule(files, basedir, runInNewContext) {
  const compiledScripts = {}
  const resolvedModules = {}

  function getCompiledScript(filename) {
    if (compiledScripts[filename]) {
      return compiledScripts[filename]
    }
    const code = files[filename]
    const wrapper = NativeModule.wrap(code)
    const script = new vm.Script(wrapper, {
      filename,
      displayErrors: true
    })
    compiledScripts[filename] = script
    return script
  }

  function evaluateModule(filename, sandbox, evaluatedFiles = {}) {
    if (evaluatedFiles[filename]) {
      return evaluatedFiles[filename]
    }

    const script = getCompiledScript(filename)
    const compiledWrapper =
      runInNewContext === false
        ? script.runInThisContext()
        : script.runInNewContext(sandbox)
    const m = { exports: {} }
    const r = file => {
      file = path.posix.join('.', file)
      if (files[file]) {
        return evaluateModule(file, sandbox, evaluatedFiles)
      } else if (basedir) {
        return require(resolvedModules[file] ||
          (resolvedModules[file] = resolve.sync(file, { basedir })))
      } else {
        return require(file)
      }
    }
    compiledWrapper.call(m.exports, m.exports, r, m)

    const res = Object.prototype.hasOwnProperty.call(m.exports, 'default')
      ? // @ts-expect-error
        m.exports.default
      : m.exports
    evaluatedFiles[filename] = res
    return res
  }
  return evaluateModule
}

Subdomains

Frequently Asked Questions

What does compileModule() do?
compileModule() is a function in the vue codebase, defined in packages/server-renderer/src/bundle-renderer/create-bundle-runner.ts.
Where is compileModule() defined?
compileModule() is defined in packages/server-renderer/src/bundle-renderer/create-bundle-runner.ts at line 27.
What calls compileModule()?
compileModule() is called by 1 function(s): createBundleRunner.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free