#typescript #vue.js #vuejs2 #vue-component #module-export
#typescript #vue.js #vuejs2 #vue-компонент #модуль-экспорт
Вопрос:
В настоящее время у меня возникла проблема с экспортом пользовательского компонента Vue из моего пакета библиотеки компонентов.
Допустим, ComponentLib
имеет следующую структуру папок, где вызывается мой пользовательский компонент для экспорта icon.vue
|-src
|-components
|-icon.vue
|-index.ts
|-package.json...and other config files
ComponetLib/src/components/icon.vue
<template functional>
...
</template>
<script lang="ts">
import { Vue, Component, Prop } from 'vue-property-decorator';
import { IconModel } from '../index';
@Component({})
export default class IconComponent extends Vue {
@Prop()
icon!: IconModel;
}
</script>
ComponentLib/src/index.ts
export type IconModel = {
id: string;
content: string;
}
export { default as Icon } from 'components/icon.vue';
После сборки в этой dist
папке я вижу экспортируемые следующие типы.
|-dist
|-...
|-types
|-components
|-icon.vue.d.ts
|-index.d.ts
|-package.json
dist/types/index.d.ts
export declare type IconModel = {
id: string;
content: string;
};
export { default as Icon } from 'components/icon.vue';
Вот структура для MainProject
|-src
|-components
|-profile.vue --> imports @ComponentLib/components/icon.vue
|-index.ts
|-package.json...and other config files
profile.vue
импортирует пользовательский icon.vue
компонент через
import Icon from '@ComponentLib/types/components/icon.vue';
но при компиляции я получил сообщение об ошибке, module not found
и оно не может разрешить эту ссылку.
Но когда я помещаю тот же компонент в MainProject/src/components
папку, и компилятор кажется счастливым. Мне кажется, что что-то может быть не так с экспортом. Но я не уверен, какую часть я пропустил или сделал неправильно.
Ответ №1:
По-видимому, способ, которым я импортировал компонент Icon, был неправильным, и он должен быть похож
import { Icon, IconModel } from '@ComponentLib/components';
А затем добавьте компонент значка в @Component({components: {Icon }})
декоратор.