Узел - Разница между npm -v и реальной версией - PullRequest
0 голосов
/ 09 октября 2019

Используя терминал Mac и пытаясь запустить сайт Gatsby, я столкнулся с проблемой. Насколько я узнал, это из-за старой версии 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 ]

1 голос
/ 09 октября 2019

Я думаю, что вы должны получить самую последнюю стабильную версию узла ([Download Node]) 1 , потому что команда brew upgrade npm только обновляет npm. Когда вы загружаете файл .dmg для Node, вы получаете последнюю стабильную версию для Node и NPM.

Затем npm -v просто возвращает версию npm, установленную на данный момент на вашем компьютере, и реальную версию. (предположим, node -v) - это версия узла js, работающего на вашем компьютере.

0 голосов
/ 09 октября 2019

Node и npm - это отдельные модули, если хотите. Вы получаете npm с NodeJS, но они могут быть установлены отдельно. Таким образом, вы можете получить две разные версии каждой из них.

Кроме того, вы можете установить узел и npm локально. Или вы можете установить node и npm вместе с homebrew. (в подвале) В этом случае вы получаете две отдельные установки. Поэтому вам может понадобиться проверить, какая установка активно используется.

В вашем случае сначала проверьте, какая у вас версия узла.

node --version

, а затем вы можете перейти оттуда. Если он соответствует версии npm, проверьте, какой путь связан при вводе npm или узла. Вы можете потенциально использовать какую команду, чтобы увидеть, какая установка используется в данный момент. Команда

which node

выше должна дать вам путь, скопировать этот путь и выполнить

ls -l [copied-path]

вывод из ls -l должен дать вам путь, который скажет вам, какая установка используется.

Если указанный выше путь не указывает путь варки, я думаю, что вы можете запустить ссылку brew, чтобы изменить этот путь

brew link node
0 голосов
/ 09 октября 2019

NPM - это менеджер пакетов узлов. Это не то же самое, что сам узел. Чтобы получить текущую версию узла, который работает, node -v скажет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...