为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2021-06-16 17:05:12
我正在尝试导入一个工厂 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 特别令人困惑,我不知道为什么当该语法适用于其他文件时它会抛出该错误。
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-06-24
?
繁花如伊

TA贡献2012条经验 获得超12个赞

node自己也不知道typescript。您应该首先将其编译为常规 javascript。


查看完整回答
反对 回复 2021-06-24
  • 2 回答
  • 0 关注
  • 363 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信