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
В моем случае мне просто нужно было добавить дополнительную строку в конце файла 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
исправлена проблема