使用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
。
有任何评论吗?
答案 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