获取解析错误:意外的令牌,预期的“;”
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 ?? [],
【讨论】:
以上是关于获取解析错误:意外的令牌,预期的“;”的主要内容,如果未能解决你的问题,请参考以下文章