为什么在使用 NextJS 时我不能在 Javascript 文件中导入或需要

我正在尝试导入一个工厂 Typescript 文件,该文件从客户端获取数据并以严格的方式组织它,然后再将其传递给使用 Next.js 的路由创建。


我尝试更改导入和导出文件的方式。我试过import { ContentfulAssetFactory, LandingPageFactory } from './factory';和const factory = require('./factory)。


import { ContentfulAssetFactory, LandingPageFactory } from './factory';


const client = require('./client');


const LANDING_PAGE_CONTENT_TYPE_ID = 'campaignLandingPage';


module.exports = async () => {

  const entries = await client.getEntries({

    content_type: LANDING_PAGE_CONTENT_TYPE_ID,

  });


  const linkedAssets = await entries.includes.Asset.map(asset => {

    return ContentfulAssetFactory.create(asset.fields)

  })


  const items = entries.items.map(item => {

    return LandingPageFactory.create(item.fields, linkedAssets)

  });


  return items;

};

class ContentfulAssetFactory {

    static create(asset: ContentfulAsset) {

        return {

          id: asset.id,

          contentType: asset.contentType,

          url: asset.url,

          title: asset.title

        }

      }

    }

}

class LandingPageFactory {

 static create(page: LandingPage, assets: Array<ContentfulAsset>) {

    const pageImgs = await page.pageImages.map(asset => {

      assets.find(item => {

        if (item.sys.id === asset.sys.id) {


        }

      })

    })


    const lp = {

      campaignTitle: page.campaignTitle,

      promoCode: page.promoCode,

      template: page.template,

      ctaPrimary: page.ctaPrimary,

      ctaPrimaryButtonText: page.ctaPrimaryButtonText,

      ctaPrimaryHyperlink: page.ctaPrimaryHyperlink,

      ctaAlt1: page.ctaAlt1,

      ctaAlt1Hyperlink: page.ctaAlt1Hyperlink,

      ctaAlt1TextColor: page.ctaAlt1TextColor,

      ctaAlt1BackgroundColor: page.ctaAlt1BackgroundColor,

      pageImages: pageImgs

    }

      return lp

  }

}


export {

  ContentfulAsset,

  ContentfulAssetFactory,

  LandingPage,

  LandingPageFactory

}

我希望能够导入或要求打字稿并使用类静态函数。我很困惑为什么我不能要求文件或导入它。SyntaxError 特别令人困惑,我不知道为什么当该语法适用于其他文件时它会抛出该错误。


慕的地6264312
浏览 364回答 2
2回答

浮云间

打字稿不是有效的 javascript。您必须先将打字稿编译为 javascript,然后才能导入它。

繁花如伊

node自己也不知道typescript。您应该首先将其编译为常规 javascript。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript