export const useHtmlToVue = <P>(
propsDefinition: P = {},
targetComponent: string|ReturnType<typeof defineComponent> = 'div',
setTargetComponentProps: (PropsFromDefinition<P>) = () => {},
) => defineComponent({
props: propsDefinition,
setup(props, { slots }) {
const isReady = ref(false);
const slotContainer = ref<HTMLDivElement|null>(null);
const targetComponentProps = shallowRef<VNodeProps & Record<string, any>>({});
const slotNodes = computed<HTMLElement[]>(() => [...(slotContainer.value?.children ?? [])]
.filter((item): item is HTMLElement => item instanceof HTMLElement));
const propsSetter = (targetProps: Record<string, unknown>) => {
targetComponentProps.value = targetProps;
};
onMounted(() => {
setTargetComponentProps(
props,
slotNodes.value,
propsSetter,
);
isReady.value = true;
});
return () => {
if (isReady.value) {
return h(targetComponent, targetComponentProps.value);
}
return withDirectives(
h('div', { ref: slotContainer }, h(() => renderSlot(slots, 'default'))),
[[vShow, false]],
);
};
},
});
"в чем проблема?" а зачем мне этот вопрос задавать и почему?
Вы разве используете docker-compose для продакшн?
а в чем проблема docker-compose?
Рабочую директорию Docker можно указать в
/etc/docker/daemon.json
.{ "data-root": "/home/someUser/anyUrl"}