diff --git a/src/client/pages/page-editor/page-editor.script-block.vue b/src/client/pages/page-editor/page-editor.script-block.vue
index edef095168aeff228c3c217267189ba79e5c63e8..34ba113b294e11196e33db4d0d36f2a43bd37fe0 100644
--- a/src/client/pages/page-editor/page-editor.script-block.vue
+++ b/src/client/pages/page-editor/page-editor.script-block.vue
@@ -56,7 +56,7 @@
 </template>
 
 <script lang="ts">
-import { defineComponent } from 'vue';
+import { defineAsyncComponent, defineComponent } from 'vue';
 import { faPencilAlt, faPlug } from '@fortawesome/free-solid-svg-icons';
 import { v4 as uuid } from 'uuid';
 import XContainer from './page-editor.container.vue';
@@ -66,7 +66,8 @@ import * as os from '@/os';
 
 export default defineComponent({
 	components: {
-		XContainer, MkTextarea
+		XContainer, MkTextarea,
+		XV: defineAsyncComponent(() => import('./page-editor.script-block.vue')),
 	},
 
 	inject: ['getScriptBlockList'],
@@ -135,10 +136,6 @@ export default defineComponent({
 		}
 	},
 
-	beforeCreate() {
-		this.$options.components.XV = require('./page-editor.script-block.vue').default;
-	},
-
 	created() {
 		if (this.value.value == null) this.value.value = null;