diff --git a/packages/app/src/sandbox/eval/presets/vue-cli/index.ts b/packages/app/src/sandbox/eval/presets/vue-cli/index.ts index e048690b241..38b195a839e 100644 --- a/packages/app/src/sandbox/eval/presets/vue-cli/index.ts +++ b/packages/app/src/sandbox/eval/presets/vue-cli/index.ts @@ -63,9 +63,8 @@ export default function initialize() { try { const vueModule = await manager.resolveTranspiledModule('vue', '/'); - if (!vueModule.source) { - await vueModule.transpile(manager); - } + await vueModule.transpileTree(manager); + const Vue = vueModule.evaluate(manager); if (Vue) { diff --git a/packages/sandpack-core/src/transpiled-module/transpiled-module.ts b/packages/sandpack-core/src/transpiled-module/transpiled-module.ts index bdf04c9d7de..fb2bba79081 100644 --- a/packages/sandpack-core/src/transpiled-module/transpiled-module.ts +++ b/packages/sandpack-core/src/transpiled-module/transpiled-module.ts @@ -749,6 +749,13 @@ export class TranspiledModule { ); } + /** Transpile current module and ensure the surrounding tree (dependencies and initiators) are also transpiled */ + async transpileTree(manager: Manager): Promise { + await this.transpile(manager); + await manager.verifyTreeTranspiled(); + return this; + } + logWarnings = () => { if (this.warnings.length) { this.warnings.forEach(warning => {