Typescript:语法错误:意外的标记'export'

问题描述 投票:0回答:1

在我的React项目中,我需要在3个打字稿项目之间共享模型(在我的情况下为打字稿接口)。因此,我选择了bit.env并将所有模型导入https://bit.dev/swyftcart/model/index/~code,一切都很好。

然后,我需要验证模型中的字段,因此我向https://bit.dev/swyftcart/model/index/~code#util.ts添加了实用程序功能,并将其部署到bit.env中>]

当我在项目#2(我保留Firebase云功能的地方)中尝试使用此辅助功能时,我开始遇到以下错误。

/Users/vinoth.gopu/Documents/mine/oss/SwyftCartCloud/functions/node_modules/@bit/swyftcart.model.index/dist/index.js:1
export * from './admin';
^^^^^^

SyntaxError: Unexpected token 'export'
    at wrapSafe (internal/modules/cjs/loader.js:1101:16)
    at Module._compile (internal/modules/cjs/loader.js:1149:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1205:10)

我在项目2中的代码

export const placeOrder = functions
    .runWith({
        memory:'256MB'
    })
    .region(cloudConfig.firebase.region)
    .firestore
    .document('Orders/{OrderId}')
    .onCreate((snap, context) => {
        const orderDetails = snap.data() as UserOrders;

        try {
            //check if all fields of interface implemented
            if(isOrder(orderDetails)) { // PROBLEM HERE
                 //do something
            }

如以上代码中所指出的,我可以使用该模型项目中的所有接口,但可以使用辅助函数抛出错误消息。

我参考了这些文章和链接

  1. Getting Unexpected Token Export
  2. https://medium.com/the-node-js-collection/an-update-on-es6-modules-in-node-js-42c958b890c
  3. 但是它们似乎都不起作用(我还是感到困惑的是,哪个项目需要移植共享模型或我的项目#2?)。我可以理解,这是节点无法识别ES6模块并需要某种中间转换的问题。但是我想知道所有具有类似export语句的接口都工作得很好。我想了解我在这里想念的是什么。

在我的React项目中,我需要在3个打字稿项目之间共享模型(在我的情况下为打字稿接口)。所以我选择了bit.env并将所有模型导入到https://bit.dev/swyftcart/model / ...

javascript node.js typescript babel
1个回答
0
投票

NodeJS默认使用CommonJS方式加载软件包。使用较新版本的NodeJS,您可以使用.mjs文件或告诉引擎项目为a module-based project来获得JavaScript的模块功能。

我不知道FireBase是否使用最新的Node版本,但这至少应解释您为什么看到此错误。在NodeJS已经开始将内容包装在CommonJS中之后很长一段时间,JS就获得了对Export的支持,这就是为什么要实现这一问题。传统支持几乎总是很痛苦。

© www.soinside.com 2019 - 2024. All rights reserved.