我无法在终端中执行sudo npm install --save firebase-admin
。我得到的错误是:
npm WARN package.json crypto@0.0.3 crypto is also the name of a node core module.
npm WARN package.json express-resource@1.0.0 No repository field.
npm ERR! Error: Invalid Package: expected types/jsonwebtoken but found @types/jsonwebtoken
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache/add-local-tarball.js:161:14
npm ERR! at process._tickCallback (node.js:448:13)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Darwin 16.1.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "firebase-admin"
npm ERR! cwd /Users/Henry/work_space/ServerMain
npm ERR! node -v v0.10.38
npm ERR! npm -v 1.4.28
npm ERR! not ok code 0
我在types/jsonwebtoken
文件中看不到package.json
或任何内容。
我怀疑这可能是因为我的节点和firebase已经过时了?
我的节点是1.4.28,我的firebase是2.4.2。如果你们有任何想法,请告诉我们!
答案 0 :(得分:3)
如果您怀疑自己的Node已过期,那么您是否尝试使用较新版本的Node安装它? - 即What Have You Tried?
首先你的节点不是v1.4.28而是v0.10.38 - 阅读你自己的问题,它就在那里。
节点0.10于2013年3月发布,并于2016年10月停止维护。其当前状态为“生命终止”,因此不要指望它适用于任何新模块,除非这些模块明确声明它们有效使用那个版本的Node(这个版本没有),甚至不希望它能很好地工作。请参阅Node LTS schedule:
节点0.10使用非常旧版本的V8(3.14.5.x),因此您甚至无法使用现代JavaScript。相比之下,Node 7.2.0使用V8版本5.4.500.43。请参阅V8 Changelog以了解其中是否已更改。
甚至来自Node 0.12的io.js was forked,因为在0.12中没有足够快地合并V8版本,并且你使用的版本甚至比那个版本更早。
当新版本免费提供时,没有理由使用Node 0.10。
如果您不知道如何安装较新版本的Node,请参阅my tutorial或Node website。