React Typescript: Строка 0: Ошибка синтаксического анализа: не удается прочитать имя свойства undefined

Сегодня внезапно я начал получать ошибки сборки в проекте, созданном с помощью Typescript. В файле, который (или что-то еще, на что он ссылается) не менялся в течение нескольких недель, я начал получать:

./path/to/my/file.ts
  Line 0:  Parsing error: Cannot read property 'name' of undefined

Эта ошибка впервые появилась в нашем CI, ее можно было воспроизвести вручную на сервере, и я наконец смог воспроизвести ее на своем собственном компьютере (который работал отлично) после обновления всех пакетов. Теперь, даже если я вытащу старую (строительную) фиксацию своего проекта, я не смогу ее построить. у меня естьyarn.lock совершил мое репо, но даже со старым package.json а также yarn.lock (Я удаляю node_modules и делать yarn), Я не умею строить.

Эта ошибка буквально началась сегодня совершенно неожиданно.

Что может быть причиной?


Мои (возможно актуальные) версии:

yarn 1.22.4,
node v13.11.0,
typescript 3.7.5
react 16.12
react-scripts 3.4.0
macOS 10.15 Catalina

8 ответов

Решение

Проблема, по-видимому, была вызвана неправильной конфигурацией некоторых (одноранговых?) Зависимостей зависимости, react-scriptsс шаблоном TypeScript. Это ушло. Убедитесь, что вы обновили свои зависимости, очиститеnode_modules, даже очистить package-lock.json или yarn.lock, и попробуйте новую сборку сейчас.

I случай приложения, созданного

npx create-react-app my-app --template typescript

Точнее, create-react-app@3.4.1

Проблема была решена с помощью следующей команды:

rm yarn-lock && rm -rf node_modules && npm i

После чего вы можете запустить:

либо yarn start или npm start

Просто обновите версию машинописного текста до 3.8.x: Ссылка

В моем случае мне просто нужно было добавить дополнительную строку в конце файла ts.

export * from './result';
export * from './request';
//new line here

В моем случае виновником был импорт несуществующих файлов, например:

import { ReactComponent as SomeIcon } from '../assets/img/some-icon.svg';

Приведенные выше ответы помогли мне найти виновника. Я побежал rm -rf node_modules package-lock.json && npm i && npm start, что привело к отображению реальных ошибок (вместо бесполезного загадочного сообщения "Строка 0: Ошибка синтаксического анализа: не удается прочесть свойство 'name' of undefined")

Как только я добавил недостающие файлы, ошибки исчезли.

Эта ошибка возникает из-за того, что ваш машинописный текст несовместим с вашими плагинами typescript-eslint.

Вы можете исправить это, обновив эти две зависимости до последней версии.

"devDependencies": {
  "@typescript-eslint/eslint-plugin": "^4.6.0",
  "@typescript-eslint/parser": "^4.6.0",
}

Обновление реагирующих сценариев сработало для меня. react-scripts 3.4.0наверное не поддерживает typescript 3.7.5

В моем случае это произошло потому, что у меня был код TS под .\srcкоторый ссылался на код TS под .\toolsно у меня было только srcв includeв моем tsconfig.json, добавив toolsисправлена ​​проблема

Другие вопросы по тегам