How to install Angular2 universal when the docs on

2020-06-16 05:33发布

问题:

The maintainers at angular2-universal have not updated their site:

Problem 1)

typings install node express body-parser serve-static express-serve-static-core mime --ambient
typings ERR! deprecated The "ambient" flag is deprecated. Please use "global" instead

Problem 2)

    typings install node express body-parser serve-static express-serve-static-core mime --global
typings INFO globaldependencies "express" lists global dependencies on "node" that must be installed manually
typings INFO globaldependencies "body-parser" lists global dependencies on "node" that must be installed manually
typings ERR! message Unable to find "node" ("npm") in the registry.
typings ERR! message However, we found "node" for 2 other sources: "dt" and "env"
typings ERR! message You can install these using the "source" option.
typings ERR! message We could use your help adding these typings to the registry: https://github.com/typings/registry
typings ERR! caused by https://api.typings.org/entries/npm/node/versions/latest responded with 404, expected it to equal 200

typings ERR! cwd /Users/davidmontgomery/Documents/frontend/green
typings ERR! system Darwin 15.6.0
typings ERR! command "/usr/local/bin/node" "/usr/local/bin/typings" "install" "node" "express" "body-parser" "serve-static" "express-serve-static-core" "mime" "--global"
typings ERR! node -v v4.5.0
typings ERR! typings -v 1.3.3

typings ERR! If you need help, you may report this error at:
typings ERR!   <https://github.com/typings/typings/issues>

How do I resolve? I am using a mac.

回答1:

The solution is to install node separately with the --global flag, because it's the only one that needs to be installed globally.

typings install dt~node --global
typings install dt~express dt~body-parser dt~serve-static dt~express-serve-static-core dt~mime

EDIT : You don't need angular universal for server side rendering anymore, as it is now part of angular core.



回答2:

As of version 1.0 TypeScript Definition Manager made some updates ([see here][1]) which included deprecating the --ambient flag.

  • Usages of ambient are now global
    • That means in typings.json any ambientDependencies should be renamed globalDependencies and any ambientDevDependencies should be renamed globalDevDependencies.
    • It also means --ambient is now --global ...

=> For more information, check this out. [typings github]: https://github.com/typings/typings [original answer]: Ambient flag is deprecated

Thus, you should use this pattern ↓

typings install dt~PackageName --save --global

ex) typings install dt~body-parser --global --save

Comment below, if you need more help.



回答3:

With a couple of things changing across typescript and the universal team working overtime to updating universal to the latest releases of angular rc5 and rc6, things have fallen a bit behind on the documentation front. If you want to get started quickly, checkout out the universal starter kit at https://github.com/angular/universal-starter that should work for you.