119

VS 2015 community edition (at home), npm 3.10, Angular 2 Im trying to pull get Angular2 setup within an ASP.Net MVC 5 app. The template I started with used an older version of Angular, so I updated the package references.

When I build, the first error in the list is:
Build:Cannot find type definition file for 'node'
There are dozens of other errors after that but Im assuming most are due to this first issue.

Here is the package.json and typings.json

package.json

 { "version": "1.0.0", "name": "aspnet", "private": true, "scripts": { "postinstall": "typings install", "typings": "typings" }, "dependencies": { "@angular/common": "~4.0.0", "@angular/compiler": "~4.0.0", "@angular/core": "~4.0.0", "@angular/forms": "~4.0.0", "@angular/http": "~4.0.0", "@angular/platform-browser": "~4.0.0", "@angular/platform-browser-dynamic": "~4.0.0", "@angular/router": "~4.0.0", "angular-in-memory-web-api": "~0.3.0", "systemjs": "0.19.40", "core-js": "^2.4.1", "rxjs": "5.0.1", "zone.js": "^0.8.4", "bootstrap": "^3.3.7" }, "devDependencies": { "@types/core-js": "^0.9.41", "gulp": "^3.9.1", "gulp-clean": "^0.3.2", "gulp-concat": "^2.6.1", "gulp-tsc": "^1.3.1", "gulp-typescript": "^3.1.6", "path": "^0.12.7", "typescript": "~2.1.0", "typings": "~2.1.1" } } 

typings.json

 { "globalDependencies": { "core-js": "registry:dt/core-js#0.0.0+20160725163759", "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", "node": "registry:dt/node#6.0.0+20160909174046" } } 

If I try to update just the typings, I get these messages

*typings WARN deprecated 11/21/2016: "registry:dt/node#6.0.0+20160909174046" is deprecated (updated, replaced or removed) typings WARN deprecated 9/14/2016: "registry:dt/core-js#0.0.0+20160725163759" is deprecated (updated, replaced or removed) typings WARN deprecated 10/25/2016: "registry:dt/jasmine#2.2.0+20160621224255" is deprecated (updated, replaced or removed)* 

[ update ]
cleaning out my node_modules folder, then running npm install again cleared things up. This seems to happen most often when I move a project folder to another location on my system.

2
  • Try to install the latest LTS Node.js version first, it might be an outdated Node version. Also, I think typings are deprecated. Commented Apr 21, 2017 at 13:50
  • did you find any solution to this by any chance? Commented May 2, 2017 at 15:01

16 Answers 16

241

In my case, I solved my problem. Hopefully it helps some else later.

npm install @types/node --save-dev 
Sign up to request clarification or add additional context in comments.

8 Comments

should be --save-dev. How come microsoft's node project template is missing it? Don't they test their stuff?
This answer solved things for me right away,including for a nested project
Adding the same for @types/jasmine and @types/jasminedw2 also resolve similar errors for those packages. (Using TypeScript 2.0 without NuGet in Visual Studio 2019!)
@xotonic, It actually depends on the way your project is built and run. One might need an optimized production build without devDependencies modules that take up extra space.
@BobtheBuilder it will install the typescript definitions for the Node.js runtime as dev dependency(use --save-dev flag with npm install) and its modules.
|
52

Have you tried turning it off and on again?

(Try restarting or reloading VSCode)

2 Comments

This seemed like a long shot, but it actually worked!
His using Visual Studio, Not VS Code.
43

I had several problems updating packages through visual studio. From now i always update or add packages with the powershell console.

Start PowerShell and navigate to the folder where package.json is located and then run npm install Restart visual studio after the installation is done.

You can also try to delete your node_modules folder then run npm install

Hope this will solve your problems.

4 Comments

I just had this problem and just running npm install fixed it
Side node, this is still true for vs2019. I tried using the package manager console to run npm install but that also did not work, i really had to go open cmd and run it there for it to work.
npm install with PS is wwwayyyyy slower, just a tip. Use simple command line or bash.
Restarting vscode was a necessary step for me on Windows. Thanks.
18

In my case, I had the problem because of the presence of the following in my tsconfig.json:

"typeRoots": ["node_modules/@type"] 

Removing that line fixed the problem.

3 Comments

this worked for me in server/tsconfig.json where I already had "types": ["node", "jasmine"]
You should set node_modules/@types, not @type
In my case it was also problem with "typeRoots": ["node_modules/@types"].
14

I faced exact issue while trying to upgrade to Angular 17 which needs typescript >=5.2 & < 5.3.

To fix it you need to have:

  1. typeRoots in tsconfig.json
  2. Specify all possible paths where node_modules/@types might be present. Post typescript 5.1 parent directory walking has been disabled. More info here - https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/#explicit-typeroots-disables-upward-walks-for-node_modules-types

In my case below snippet in tsconfig.json fixed it:

{ "compilerOptions": { "types": [ "node" ], "typeRoots": [ "./node_modules/@types", "../node_modules/@types", "../../node_modules/@types" ] } 

If you don't have a mono repo the first value inside typeRoots might be sufficient. Do note the leading dot signifying relative path.

1 Comment

This one solved my issue with an Angular 17 app. I didn't even have to manually specify the '"types": [ "node" ]' to get it working. Just adding the type roots did the trick.
8

On my end, this was an issue with the TS server in VSCode. You can simply restart the server by:

Opening any TS file > CMD + SHIFT + P > TypeScript: Restart TS Server

Comments

5

For local Visual Studio

If you're starting with a clean template the build in VS functionality should probably work!

Go to Dependencies > npm > Right Click > Restore Packages

Then try build again.

For Visual Studio Team Services

  • Install node https://nodejs.org/en/download/

  • Restart your agent service (VSTS Agent) if not using hosted agents

  • Add a build task to run npm install

  • Click the menu icon next to 'Working folder' to choose the location where your project.json file is located.

    enter code here

Comments

4

sometimes its just because some package(s) are missing. you can try running yarn install or npm install should resolve.

Comments

1

The easiest way to go around this in vscode is.

create a .vscode directory, then inside it, create settings.json and put the below json and you are good to go.

{ "search.exclude": { "**/node_modules": true }, "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, "**/node_modules/**": true, "env-*": true }, "files.exclude": { "**/.git": true, "**/.DS_Store": true, "**/node_modules": true, "env*": true } } 

1 Comment

His using Visual Studio, Not VS Code.
1

Restart Typescript or re-open vscode worked for me

Comments

1

for rocketchat apps, this should fix the problem:

npm link @types/node

Comments

0

Problem can be around other issues as well

Try one of the step of the solution posted here Cannot find type definition file for 'node' by me

Comments

0

I had this problem when i've been working with RN and i put a incorrect dependency on my package.

 "@types/": "react-navigation/native", 

react-navigation/native don't exists

jsonenter image description here

When i tried run tsc with it, i got this

enter image description here

Comments

0

in my case, the package has been deprecated, enter image description here when I npm install, the issue starts here, I've removed that package in package.json and removed the node_modules folder, npm install again, and restarted the app, it's worked for me

Comments

0

In my case, I migrated my Angular app from v16 to v17 and encountered the following error:

Error: error TS2688: Cannot find type definition file for 'node'. The file is in the program because: Entry point of type library 'node' specified in compilerOptions 

After trying various solutions, I finally found the root cause: the "types": ["node"] entry in the tsconfig.app.json file. Removing this entry resolved the issue."

Comments

0
npm install --include=dev 

This command is my issue. Make sure you have in your tsconfig.json

{ "compilerOptions" : { "types": ["node", "express"], "typeRoots": ["./node_modules/@types", "./types"], } } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.