猿问

自定义节点包不提供名为

我觉得我已经尝试了一切,但似乎没有任何效果。


我创建并发布了以下模块:


索引.ts:


import ContentIOService from "./IOServices/ContentIOService";


export = {

    ContentIOService: ContentIOService,

}

ContentIOService以下文件在哪里:


import {SuperIO} from "../Framework/SuperIO";

export interface ICMSContentData {

    id: number;

    url: string;

    htmlTag: string;

    importJSComponent: string;

    componentData: string

}


export interface CMSData {

    id: number;

    url: string;

    htmlTag: string;

    importJSComponent: string;

    componentData: Object

}


export default  class ContentIOService extends SuperIO {


    private static instance: ContentIOService;


    public static getInstance(): ContentIOService {

        if (!ContentIOService.instance) {

            ContentIOService.instance = new ContentIOService();

        }

        return ContentIOService.instance;

    }


    public async GetContent(url: string) {

        const response = await super.get<ICMSContentData[]>(url, {});

        try {

            if (response?.parsedBody) {

                return this.ProcessResponse(response.parsedBody);

            } else {

                this.handleHTTPError(new Error("Error"))

            }


        } catch (e) {

            this.handleHTTPError(e);

        }


    }


    private ProcessResponse(ContentData: ICMSContentData[]): CMSData[] {

        let CMSData: CMSData[] = [];

        for (let i = 0; i < ContentData.length; i++) {

            CMSData.push({

                id: ContentData[i].id,

                url: ContentData[i].url,

                htmlTag: ContentData[i].htmlTag,

                importJSComponent: ContentData[i].importJSComponent,

                componentData: this.parseComponentData(ContentData[i].componentData)

            })

        }

        return CMSData;

    }


    private handleHTTPError(e: Error) {

        console.log(e)

    }



    private parseComponentData(parseAbleString: string): Object {

        return JSON.parse(parseAbleString);

    }

}

然后我将其构建在一起并将其捆绑到一个/lib文件夹中:

MM们
浏览 102回答 1
1回答

慕村225694

export&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;ContentIOService:&nbsp;ContentIOService, }这不会导出名为 的值ContentIOService。相反,它是具有名为 的属性的对象的默认导出ContentIOService。这两种情况不是一回事。命名导出看起来更像这样:import&nbsp;_ContentIOService&nbsp;from&nbsp;"./IOServices/ContentIOService"; export&nbsp;const&nbsp;ContentIOService&nbsp;=&nbsp;_ContentIOService;您可以使用重新导出来清理:export&nbsp;{&nbsp;default&nbsp;as&nbsp;ContentIOService&nbsp;}&nbsp;from&nbsp;"./IOServices/ContentIOService";
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答