获取解析错误:意外的令牌,预期的“;”

Posted

技术标签:

【中文标题】获取解析错误:意外的令牌,预期的“;”【英文标题】:Getting Parsing error: Unexpected token, expected ";" 【发布时间】:2020-02-17 19:13:24 【问题描述】:

我正在处理一个大型 React + TypeScript 项目。

它在其他同事的本地机器上运行良好,但在我的机器上我收到以下错误:

Line 1:  Parsing error: Unexpected token, expected ";"

如下所示:

这里是源代码:

export type LoadOfferType = typeof import("../offers/defaultOffer");

export const loadOffer = async (): Promise<LoadOfferType> => 
  const offerName = process.env.NODE_ENV === "development" ? process.env.REACT_APP_FALLBACK_SITE : "defaultOffer";

  /**
   * We use a switch statement instead of ane xpression for the offer path
   * because Webpack throws a critical dependency error when using paths
   * that are not explicitly defined.
   */
  switch (offerName) 
    case "mysite.com":
      return await import("../offers/mysite.com");
    default:
      return await import("../offers/defaultOffer");
  
;

克隆存储库后我运行的命令是:

$ yarn install
$ yarn start

这里有一些关于我的系统的信息:

$ node -v
v12.13.0

$ npm -v
6.12.0

$ yarn -v
1.19.1

知道如何解决这个问题吗?

谢谢!

【问题讨论】:

可以粘贴"../offer/defaultOffer"的内容吗? 为什么要使用动态导入,因为它位于文件的顶部并且似乎总是会被加载?为什么不export type LoadOfferType = typeof require("../offers/defaultOffer"); 也有可能你没有使用正确的 TypeScript 版本。在 v2.4 中添加了动态导入 你需要在你的配置中有"module": "esnext" 【参考方案1】:

可能会发生一些事情。您是否使用 ts 配置和解析器配置创建了 ts.config.js,例如:

 export const typescriptConfig = 
 extends: ['plugin:@typescript-eslint/eslint- 
 recommended'],
 overrides: [
   
     parser: '@typescript-eslint/parser',
     extends: [
       'plugin:@typescript-eslint/recommended',
       'prettier/@typescript-eslint',
       'plugin:import/typescript',
     ],
     plugins: ['@typescript-eslint'],

     files: ['*.ts', '*.tsx'],

     rules: ,
   ,
 ],

Create React App 默认使用 ESLint。但是,ESLint 默认无法解析 TypeScript。如果你愿意,你可以考虑使用@typescript-eslint/parser。

这可能是基础 babel-eslint 解析器在没有任何配置的情况下无法正常工作。 ESLint 不会对不同的文件应用不同的解析器,因此 babel-eslint 可能会抛出错误。

确保您的配置文件是在项目的根目录中创建的。我会从那开始。

【讨论】:

【参考方案2】:

您肯定使用的是旧版本的 TypeScript。您的语法完全有效。

测试

在本地完成的示例测试。

【讨论】:

【参考方案3】:

因为不小心弄到这里了


  items ?? [],

当我应该做的时候


  items: items ?? [],

【讨论】:

以上是关于获取解析错误:意外的令牌,预期的“;”的主要内容,如果未能解决你的问题,请参考以下文章

解析错误:意外的令牌,预期的“...”

反应:解析错误:意外的令牌,预期的“(”

在新的 create-react-app 项目中通过“as”关键字键入断言会导致“解析错误:意外的令牌,预期的“;”`

eslint 解析错误:带有异步的意外令牌函数

eslint“解析错误:JSX中的意外令牌”

无法解析错误:伊斯坦布尔“导入”时出现意外令牌