File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change 3838  "packageManager" : " pnpm@8.12.0" 
3939  "dependencies" : {
4040    "chalk" : " ^4.1.0" 
41+     "hash-sum" : " ^2.0.0" 
4142    "watchpack" : " ^2.4.0" 
4243  },
4344  "peerDependencies" : {
5758    "@intlify/vue-i18n-loader" : " ^3.0.0" 
5859    "@types/cssesc" : " ^3.0.2" 
5960    "@types/estree" : " ^0.0.45" 
61+     "@types/hash-sum" : " ^1.0.2" 
6062    "@types/jest" : " ^26.0.13" 
6163    "@types/jsdom" : " ^16.2.13" 
6264    "@types/mini-css-extract-plugin" : " ^0.9.1" 
Original file line number Diff line number Diff line change @@ -11,6 +11,9 @@ import type {
1111  SFCTemplateCompileOptions , 
1212  SFCScriptCompileOptions , 
1313}  from  'vue/compiler-sfc' 
14+ 
15+ import  hashSum  from  'hash-sum' 
16+ 
1417import  {  selectBlock  }  from  './select' 
1518import  {  genHotReloadCode  }  from  './hotReload' 
1619import  {  genCSSModulesCode  }  from  './cssModules' 
@@ -363,6 +366,18 @@ export default function loader(
363366        . join ( `\n` )  +  `\n` 
364367  } 
365368
369+   if  ( isServer )  { 
370+     code  +=  `\nimport { useSSRContext } from 'vue'\n` 
371+     code  +=  `const _setup = script.setup\n` 
372+     ; ( code  +=  `script.setup = (props, ctx) => {` ) , 
373+       ( code  +=  `  const ssrContext = useSSRContext()` ) , 
374+       ( code  +=  `  ;(ssrContext._registeredComponents || (ssrContext._registeredComponents = new Set())).add(${ JSON . stringify (  
375+         hashSum ( loaderContext . request )  
376+       ) }  );`) 
377+     code  +=  `  return _setup ? _setup(props, ctx) : undefined` 
378+     code  +=  `}\n` 
379+   } 
380+ 
366381  // finalize 
367382  if  ( ! propsToAttach . length )  { 
368383    code  +=  `\n\nconst __exports__ = script;` 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments