节点-npm -v和实际版本之间的区别

时间:2019-10-09 13:48:22

标签: node.js npm

使用Mac终端并尝试运行Gatsby网站,我遇到了问题。 据我了解,这是旧版本的Node的情况。特别是,“ Node 6. *本身不支持异步操作”。

出于好奇,安装应用程序时出现的错误是:

async sendEvents() {
        ^^^^^^^^^^
SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/local/lib/node_modules/gatsby-cli/node_modules/gatsby-telemetry/lib/index.js:3:19)

因此,这似乎只是升级的问题。

这是棘手的部分。

运行npm -v时,得到以下输出:6.12.0。好吧,看起来都连贯。我收到错误消息是因为我有版本6。

然后我去brew upgrade npm并检查输出:Error: npm 12.11.1 already installed

有任何评论吗?

3 个答案:

答案 0 :(得分:1)

我认为您应该改为使用节点的最新稳定版本([下载节点])1,因为brew upgrade npm命令仅升级npm。当您下载Node的.dmg文件时,您将获得Node和NPM的最新稳定版本。

然后,npm -v仅返回您当前在计算机上安装的npm的版本,而真实版本(将假设node -v)是计算机上运行的node js的版本。

答案 1 :(得分:0)

NPM是节点程序包管理器。它与Node本身不同。要获取正在运行的Node的当前版本,node -v会告诉您。

答案 2 :(得分:0)

节点和npm是单独的模块(如果需要)。您确实已将npm与NodeJS一起安装,但是它们也可以单独安装。 因此,您可以最终得到两个不同的版本。

此外,您可以在本地安装node和npm。或者,您可以使用自制软件安装node和npm。 (在地窖中)在这种情况下,您需要进行两次单独的安装。因此,您可能需要检查正在积极使用的安装。

以您的情况为例,检查您首先拥有的节点版本。

node --version

,然后您可以从那里去。如果它与npm版本匹配,请在键入npm或node时检查链接的路径。 您可能会使用哪个命令来查看当前正在使用哪个安装。

which node

以上命令应为您提供路径,复制该路径 并运行

ls -l [copied-path]
ls -l的输出应该为您提供一条路径,该路径将告诉您正在使用的安装。

如果上面的路径没有指向Brew路径,我相信您可以运行brew链接来更改该路径

brew link node