Node.js 节点-npm-v和真实版本之间的差异

Node.js 节点-npm-v和真实版本之间的差异,node.js,npm,Node.js,Npm,使用Mac终端并试图运行盖茨比网站,我遇到了一个问题。 据我所知,这是因为一个旧版本的节点。特别是,“节点6.*本机不支持异步操作” 出于好奇,我在安装应用程序时遇到的错误是: async sendEvents() { ^^^^^^^^^^ SyntaxError: Unexpected identifier at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at

使用Mac终端并试图运行盖茨比网站,我遇到了一个问题。 据我所知,这是因为一个旧版本的节点。特别是,“节点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)
async sendEvents(){
^^^^^^^^^^
SyntaxError:意外的标识符
在createScript上(vm.js:56:10)
在Object.runInThisContext(vm.js:97:10)
在模块处编译(Module.js:542:28)
在Object.Module.\u extensions..js(Module.js:579:10)
在Module.load(Module.js:487:32)
在tryModuleLoad时(module.js:446:12)
在Function.Module.\u加载(Module.js:438:3)
at Module.require(Module.js:497:17)
根据需要(内部/module.js:20:19)
at对象。(/usr/local/lib/node_modules/gatsby cli/node_modules/gatsby遥测/lib/index.js:3:19)
所以这看起来只是升级的问题

棘手的部分来了

当我运行
npm-v
时,我得到了以下输出:
6.12.0
。好的,所有看起来都是一致的。我得到了错误,因为我有版本6

然后我转到
brew upgrade npm
并查看输出:
错误:npm 12.11.1已安装


有什么意见吗?

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

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


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

如果您愿意,node和npm是单独的模块。您可以使用NodeJS安装npm,但也可以单独安装。 因此,每种方法都可以有两个不同的版本

此外,您可以在本地安装node和npm。也可以将node和npm与自制软件一起安装。(在酒窖中),在这种情况下,您将得到两个单独的安装。因此,您可能需要检查哪个安装正在被积极使用

在您的情况下,首先检查您拥有的节点版本

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

which node
上面的命令应该给你路径,复制那个路径 跑

ls-l的输出应该给您一个路径,告诉您正在使用哪个安装

如果上述路径未指向brew路径,我相信您可以运行brew链接来更改该路径

brew link node

npm
node
是两种不同的软件…你的意思是
nvm
吗?检查
node-v
而不是
npm-v
你是否曾经在不使用brew的情况下安装过node?你是否尝试过清除node安装,然后重新安装?谢谢你的回答。node本身也是这样。“node-v”=v6.10.1。但当我进入brew升级节点时,我会看到“节点12.11.1已安装”您是否已安装NVM?如果是,您可能已安装了12.11.1,但已将其设置为使用6.10.1。非常感谢。我是node的新手(我想您已经注意到),我不知道brew只讨论npm。问题已解决!再次感谢
brew link node