Ошибка синтаксического анализа: неожиданный токен, ожидается ";" - PullRequest
2 голосов
/ 21 октября 2019

Я работаю над большим React + TypeScript проектом.

Он хорошо работает на локальной машине других коллег, но на моей я получаю следующую ошибку:

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

как вы можете видеть ниже:

enter image description here

Вот исходный код:

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

Есть идеи, как это исправить?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Может произойти пара вещей. Вы создали ts.config.js с конфигурацией ts и конфигурацией парсера, например:

 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: {},
   },
 ],

}

Создать React App по умолчанию использует ESLint. Однако ESLint не может анализировать TypeScript по умолчанию. Если вы хотите, вы можете рассмотреть возможность использования @typecript-eslint / parser.

Возможно, базовый синтаксический анализатор babel-eslint работает неправильно без какой-либо конфигурации. ESLint не применяет разные парсеры к разным файлам, поэтому babel-eslint может выдать ошибку.

Убедитесь, что ваш файл конфигурации создан в корне проекта. Я бы начал с этого.

0 голосов
/ 22 октября 2019

Вы определенно используете старую версию TypeScript. Ваш синтаксис совершенно корректен.

Проверено

Пример теста выполнен локально. enter image description here

...