I am trying to use expressjs in my app.
After installing it using typings install express --ambient --save
, I run tsc
, but I get two errors:
typings/main/ambient/express/index.d.ts(17,34): error TS2307: Cannot
find module 'serve-static'.
typings/main/ambient/express/index.d.ts(18,27): error TS2307: Cannot
find module 'express-serve-static-core'.
So, I tried to install both:
typings install serve-static --ambient --save
typings install express-serve-static --ambient --save
and then I run tsc again, but get one more error:
typings/main/ambient/serve-static/index.d.ts(79,24): error TS2307:
Cannot find module 'mime'.
How can I solve these problems? How can I install all dependencies of express automatically?
With Typescript 2.0(https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/), now it is different:
If you install typescript with the following command:
npm install -g typescript@2.0
You will have to install express typings with command
npm install --save @types/express
Instead of typings getting installed with ambient/global like in earlier releases. The typings get installed in node_modules/@types/express
directory
Your package.json will have the following fragment after doing npm install
of types
:
"dependencies": {
"@types/express": "^4.0.33"
}
{
"globalDependencies": {
"express": "registry:dt/express#4.0.0+20160708185218",
"express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20160715232503",
"mime": "registry:dt/mime#0.0.0+20160316155526",
"node": "registry:dt/node#6.0.0+20160621231320",
"serve-static": "registry:dt/serve-static#0.0.0+20160606155157"
}
}
This is my working Typings.json
I just ran into this myself and I believe is a duplicate from :
Importing node and express with typings in TypeScript
I installed both serve-static and express-serve-static then got errors stating that I was missing 'mime' and 'http'.
I had to install node typings to resolve the missing http reference and mime typings to resolve mime missing reference.
typings install mime --ambient --save
typings install node --ambient --save
The command that worked for me (the day I posted) was :
typings install dt~express --global --save
(ambient was replaced by global)
To find other related module you can use the command typings search express
(it also give you the source info)
I'v run into this issue myself and found out you also have to have the actual nodeJS module installed as well as its typing.
So when you have correclty configured typescript and your project, you need ot install both the nodeJS dependency as well as the @types dependecy.
npm install express --save
npm install --save @types/express