How to install express in typings?

2020-06-01 05:59发布

问题:

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?

回答1:

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"
  }


回答2:

{
  "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



回答3:

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


回答4:

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)



回答5:

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