I noticed not too long ago, whenever I try to start my app, I receive plenty of Cannot find name 'require'
and Cannot find type definition file for 'node'
and a Cannot find type definition for 'react-router'
Some solutions I have already tried are:
1) adding a types: ["node"]
in my tsconfig.json, as you all can see below.
2) adding @types/node
in my package.json, which you all can see here.
3) removing node_modules and re yarn
ing, to no avail. I've also deleted yarn.lock as well and the issue persists.
4) Adding a typeRoots: ["node_modules/@types/node"]
, which didn't seem to do much.
// Package.json
"devDependencies": {
"@types/lodash": "^4.14.110",
"@types/node": "^10.12.18",
"@types/react": "16.3.12",
"@types/react-dom": "15.5.0",
"@types/react-router": "4.0.11",
"babel-core": "6.26.3",
"babel-loader": "7.1.5",
"babel-preset-es2015": "6.24.1",
"babel-preset-react": "6.24.1",
"css-loader": "1.0.0",
"extract-text-webpack-plugin": "2.0.0-beta.4",
"html-webpack-plugin": "2.24.1",
"react": "15.5.4",
"react-dom": "15.5.4",
"react-router-dom": "4.1.1",
"rimraf": "2.6.2",
"style-loader": "0.22.1",
"ts-loader": "1.2.1",
"typescript": "3.2.2",
"url-loader": "1.0.1",
"webpack": "2.2.0",
"webpack-dev-server": "1.16.2"
}
//tsconfig.json (at root level)
{
"compilerOptions": {
"baseUrl": "./",
"target": "es2016",
"pretty": true,
"module": "commonjs",
"sourceMap": true,
"jsx": "preserve",
"outDir": "./dist/",
"noImplicitAny": false,
"preserveConstEnums": true,
"strict": true,
"allowSyntheticDefaultImports": true,
"types": ["node"],
"paths": {
"*": ["node_modules/@types/*", "*"]
}
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}
The above tsconfig and package.json combination yield the following errors:
ERROR in ./src/index.tsx
(5,1): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node` and then add `node` to the types field in your tsconfig.
ERROR in /Users/johnli/Documents/portfolio/tsconfig.json
error TS2688: Cannot find type definition file for 'node'.
Some odd behavior that I noticed is that adding types: ["node"]
will erase my Cannot find type definition file for 'react-router'
but not for node
. Adding react-router
produces the error for both node
and react-router
, and removing the types
attribute entirely also yields an error for both node
and react-router
.
I would like to refrain from using declare var require: any
as the solution, since that doesn't resolve the heart of the issue and more of a patch.
Some more information should it be useful: node version is 11.6.0
and yarn version is 1.13.0
Any other suggestions to get this working? I can't seem to find any other solutions aside from the ones I tried above. I can also supply more information should that be needed. Thanks all!
To solve the error "Cannot find type definition file for node", install the node types by running npm i -D @types/node . If the error is not resolved, try adding node to your types array in tsconfig. json and restarting your IDE. The first thing you need to do is make sure you have typings for Node.
Run
npm install @types/node --save-dev
and in tsconfig file add: -
{
"compilerOptions": {
"types": ["node"]
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With