Как я могу установить NODE_MODULE_VERSION 46 - PullRequest
1 голос
/ 17 мая 2019

Как я могу установить версию Node.js, используя NODE_MODULE_VERSION 46? Я продолжаю сталкиваться с несоответствием NODE_MODULE_VERSION, и перекомпиляция не помогла, поэтому переключение версий узлов может быть проще.

В основном, я продолжаю сталкиваться с этим:

Warning: The module '/home/cwaugh/workspaces/myproject/build/Release/addon.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`). Use --force to continue.

До сих пор я пытался использовать n для перехода на другие версии (для одной из моих зависимостей требуется 4.9.1 или ниже), но, похоже, это не меняет NODE_MODULE_VERSION, как распознается в предупреждении.

Я также пытался перекомпилировать:

  • Я попытался удалить node_modules и снова запустить npm install. (эта ошибка выглядит так, как будто она исходит из корня проекта, но она также нигде не работала в папке node_modules)
  • node-gyp configure --target=4.9.1 && node-gyp build --target=4.9.1. Я получил идею от здесь и надеялся, что мне повезет больше, чем mxcd.
  • node-pre-gyp rebuild. Я видел это и думал, что это может сработать для меня.

Это работает на другом, более старом компьютере, на котором работает бродячий образ. К сожалению, vagrant не работает на новом компьютере, поэтому я пытался с нуля. Иногда мне интересно, потому что я использую Ubuntu 18.04. Сервер не может пройти 16.04, когда запускается наш образ докера.

1 Ответ

0 голосов
/ 17 мая 2019

Я ПОЛУЧИЛ ЭТО!

Оказывается, я получал разные версии от node и nodejs

$ node --version
v4.9.1
$ nodejs --version
v8.10.0

Я обновляюсь до узла v8.10.0, переделываю все, и ошибка исчезла!

sudo npm install -g n
sudo n 8.10.0
rm -rf node_modules
npm install
node-gyp clean
node-gyp configure
node-gyp build
grunt build
grunt start
# No more NODE_MODULE_VERSION error

Я попытался удалить nodejs (поскольку он был заменен просто "node"), но это требуется для node-grunt-cli. Я предполагаю, что grunt использует nodejs вместо node для проверки его версии, что приводит к ошибке. Репозитории Ubuntu имеют Grunt v0.4.5, в то время как Grunt stable находится на v1.0.3, поэтому, возможно, более новая версия grunt также решит эту проблему.

...