#javascript #node.js #typescript #create-react-app
#javascript #node.js #typescript #create-react-app
Вопрос:
У меня есть приложение react / typescript, созданное с create-react-app
Когда я пытаюсь yarn start
на своем компьютере, я получаю следующую ошибку:
Failed to compile.
undefined
TypeScript error in undefined(undefined,undefined):
Cannot find type definition file for 'async'. TS2688
Я не понимаю, почему возникает эта ошибка. Зачем async
нужно определение типа? И почему он не находит его?
Я уже пытался удалить node_modules
yarn.lock
и выполнить `yarn install`
Я также попытался удалить всю папку и снова клонировать свой репозиторий (и установить все заново).
Любопытно, что это отлично работает на моем ноутбуке, когда я клонирую репозиторий:
https://github.com/grochadc/filex-workshops-registration
package.json
:
{
"name": "typescript-react-testing",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "10.0.0",
"@testing-library/user-event": "^12.1.5",
"@types/jest": "^24.0.0",
"@types/node": "^12.0.0",
"@types/react": "^16.9.0",
"@types/react-dom": "^16.9.0",
"@types/yup": "^0.29.7",
"bootstrap": "^4.5.2",
"dotenv": "^8.2.0",
"firebase": "^7.21.0",
"formik": "^2.1.5",
"json-server": "^0.16.1",
"mutation-observer": "^1.0.3",
"react": "^16.13.1",
"react-bootstrap": "^1.3.0",
"react-dom": "^16.13.1",
"react-responsive": "^8.1.0",
"react-scripts": "3.4.3",
"styled-components": "^5.2.0",
"typescript": "4.0.3",
"yup": "^0.29.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"json-server": "json-server --watch db.json --port 5000"
},
"proxy": "http://localhost:5000",
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@testing-library/dom": "^7.24.2",
"jest-fetch-mock": "^3.0.3"
}
}
tsconfig.json
{
"compilerOptions": {
"noImplicitAny": false,
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react"
},
"include": ["src"]
}
Я отредактировал файл, который вызывал у меня проблему с асинхронностью (я удалил async), и я продолжаю получать ту же ошибку.
Atom Linter выдает мне ошибку в начале tsconfig.json
, как это:
Cannot find type definition file for 'async' .
Cannot find type definition file for 'graphql' .
Cannot find type definition file for 'isomorphic-fetch' .
Я в тупике, потому что я не добавлял graphql
как зависимость (ее, конечно, нет package.json
).
Комментарии:
1. Пожалуйста, добавьте свой
tsconfig.json
вопрос.2. Если он работает в одной системе, а не в другой. Убедитесь, что версии всех инструментов, начиная с NodeJS, совпадают.
3. @AluanHaddad Я проверил, и на моем ноутбуке был узел v12, а на главном компьютере был узел v14, но когда я обновил ноутбук до версии 14, все еще работает нормально (в то время как основной сбой «. Какие еще инструменты я должен проверить на совместимость?
4. Проверьте версию yarn. Клонируйте его в другое место на вашем ноутбуке и убедитесь, что он работает. Возможно, некоторые типы в родительских каталогах подбираются.
5. Обновил Yarn до 1.22.5 и снова клонировал все на обеих машинах, и все равно один выдает ошибку.
Ответ №1:
это может быть связано с версией узла, которую вы используете, наименьшей версией должна быть nvm 10.18, поэтому, пожалуйста, убедитесь, что у вас есть правильные зависимости.
Комментарии:
1. У меня есть узел v14.1.0 в обеих системах. Какие еще зависимости я должен проверить?