Я запускаю приложение узла на терминале. Недавно обновились до узла v8.5.0, но получаю эту ошибку:
Error: The module '/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. 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`).
at Object.Module._extensions..node (module.js:653:18)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (module.js:624:30)
at Module._extensions..js (module.js:635:10)
at Object.require.extensions.(anonymous function) [as .js] (/tidee/tidee-au/packages/tidee-au-server/node_modules/babel-register/lib/node.js:152:7)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/server/helpers/encryptPass.js:1:16)
Есть идеи, как это решить?
node.js
npm
version
node-modules
JoeTidee
источник
источник
Ответы:
Вам необходимо удалить папку модуля (
bcrypt
) изnode_modules
папки и переустановить ее, используя следующие команды:$ rm -rf node_modules/bcrypt $ npm install // or $ yarn
источник
zmq
пакетом, и восстановление или удаление его иnpm installing
все снова не помогает. Всегда одна и та же проблема.rm -rf node_modules
. Очистите кеш npm:npm cache clear
удалите package-lock.json или npm-shrinkwrap.json. И только после этого бегиnpm i
.npm cache clear
, другие команды сделали этоУ меня была такая же проблема, и ничего из упомянутого здесь не работало для меня. Вот что у меня сработало:
main.js
файле, запускаемом электроном. (это показалось мне первой важной частью)npm i -D electron-rebuild
чтобы добавить пакет electronic-rebuildnode-modules
папку, а такжеpackages-lock.json
файл.npm i
для установки всех модулей../node_modules/.bin/electron-rebuild
(.\node_modules\.bin\electron-rebuild.cmd
для Windows), чтобы все перестроитьЭто очень важно , чтобы работать
./node_modules/.bin/electron-rebuild
непосредственно после того, как вnpm i
противном случае он не работает на моем компьютере.Я надеюсь, что смогу помочь некоторым разочарованным душам.
источник
Вам нужно пересобрать пакет и указать npm, чтобы он также обновил его двоичный файл . Пытаться:
@robertklep ответил этой командой на относительный вопрос, смотрите .
Только перестройка не решила мою проблему, это отлично работает в моем приложении.
Надеюсь, это поможет!
источник
Просто запустите:
npm uninstall bcrypt
С последующим:
npm install bcrypt
(илиnpm install
, если bcrypt объявлен как зависимость в вашем файле package.json )источник
вы можете увидеть эту ссылку
чтобы проверить правильность вашей версии узла. использование NODE_MODULE_VERSION 51 означает, что версия вашего узла - nodejs v7.x, требуется NODE_MODULE_VERSION. 57 означает, что вам нужно обновить узел до v8.x, поэтому вам необходимо обновить узел. а затем вам нужно запустить
npm rebuild
команду, чтобы перестроить ваш проектисточник
11/stable
на8/stable
с$ snap refresh node --channel=8/stable
в Ubuntu. После этого сделал$ npm rebuild
.NODE_MODULE_VERSION 51
означает, что.node
файл скомпилирован с использованием некоторой версии узла с использованием NODE_MODULE_VERSION 51. А пользователь использует версию узла с использованием 57, поэтому он не может использовать ее напрямую. Пользователь должен пересобрать компиляцию.Скорее всего, у вас возникла эта проблема из-за package-lock.json. Каким-то образом кажется, что это не дает вам перекомпилировать или перестраивать ваши зависимости, даже если вы явно запускаете
npm rebuild
. Я выполнил все следующее, чтобы исправить это для себя:источник
Убедитесь, что у вас установлена только одна версия NodeJS. Попробуйте эти два:
Первоначально я установил NodeJS из исходного кода, но это была неправильная версия, и она была «обновлена» до новейшей с помощью
nvm
, которая не удаляет никакие предыдущие версии, а устанавливает только желаемую версию в/root/.nvm/versions/...
каталоге. Такsudo node
все еще указывал на предыдущую версию, в то время какnode
указывал на более новую версию.источник
У меня такая же ошибка, но я пытался запустить приложение узла с помощью контейнера Docker.
Я исправил это, добавив файл .dockerignore, чтобы игнорировать каталог node_modules, чтобы убедиться, что при создании образа докера он создает собственные пакеты для образа, который я хотел (Alpine), вместо копирования node_modules, скомпилированных для моего хоста (Debian) .
источник
node_modules/
andpackage-lock.json
Оказывается, моя проблема заключалась в ошибке пользователя: убедитесь, что версия узла, которую вы используете для запуска, такая же, как и при запуске npm install или yarn.
Я использую NVM для управления версиями узла и запускал yarn через терминал, но моя IDE была настроена на использование более старой версии узла при запуске, и это выдавало ошибку выше. Сопоставление версии узла моей IDE в конфигурации запуска с узлом --version устраняет проблему.
источник
Я удалил папку node_modules и запустил,
npm install
и мое приложение запустилось без ошибок.источник
У меня была аналогичная проблема с robotjs. Существовал устаревший код, требующий node v11, но я уже скомпилировал электронный код на v12. Так что я получил в основном ту же ошибку. Здесь ничего не сработало, поскольку я в основном пытался перестроить электрон и другие мои зависимости в узел v11 из v12.
Вот что я сделал (частично это основано на ответе chitzui, кредит там, где полагается кредит):
npm init
для повторной установки пакета, а затем пропустить данные со старым резервным копированием package.jsonnpm i
Надеюсь это поможет.
источник
вам нужно просто выполнить следующие команды:
и наконец
не забудьте,
yarn add electron-rebuild
если он не существует в ваших зависимостях.источник
Для модулей Electron установите electronics-rebuild.
Format: electron-rebuild -o <module_name> -v <electron version> Example: electron-rebuild -o myaddon -v 9.0.0-beta.6
Укажите ту же версию, которую вы установили в текущем каталоге
У вас может быть такой опыт, когда стандартная сборка node-gyp будет сообщать как 64, а затем базовая электронная перестройка будет сообщать 76, пока вы не добавите -v с точной версией, она перейдет к фактической версии 80 (для 9.0.0-beta. 6)
источник
Я получил эту ошибку при запуске моего приложения с systemd:
ExecStart=/usr/local/bin/node /srv/myapp/server.js
Но я использовал другую версию для
npm install
оболочки:$ which node /home/keith/.nvm/versions/node/v8.9.0/bin/node
Если это ваша настройка, вы можете либо жестко указать версию узла в служебном файле, либо воспользоваться обходным путем, подобным этому .
источник
Попробовав разные вещи. Это сработало.
Удалите папку модулей вашего узла и запустите
источник
Я столкнулся с той же проблемой с модулем grpc, и в моем случае я использовал электрон и установил неправильную электронную версию в переменной env «export npm_config_target = 1.2.3», установив ее на электронную версию, которую я использую, решила проблему на мой конец. Надеюсь, это поможет кому-то, кто устанавливает переменные env, как указано здесь ( https://electronjs.org/docs/tutorial/using-native-node-modules#the-npm-way )
источник
Вы можете полностью удалить bcrypt и установить bcryptjs. Он примерно на 30% медленнее, но не имеет зависимостей, поэтому его установка не вызывает затруднений.
Мы успешно установили его для наших приложений. У нас были проблемы с bcrypt, который не компилировался на экземплярах AWS для Node v8.x
источник
Потенциально причиной проблемы является несоответствие версий JS узла. Как указано в документации . Обязательно используйте один из выпусков lts. Например, укажите это в вашем Dockerfile:
# Pull lts from docker registry FROM node:8.12.0 # ...
источник
Проверьте версию узла, которую вы используете, возможно, она не соответствует ожидаемой.
источник
У меня была такая же проблема, и ни одно из этих решений не помогло, и я не знаю почему, они работали у меня в прошлом для аналогичных проблем.
В любом случае, чтобы решить проблему, я просто вручную перестроил пакет с помощью node-pre-gyp
И все заработало как положено.
Надеюсь это поможет
источник
Я только что получил эту ошибку, запустив kadence, установленный сценарий "kadence" сначала проверяет наличие nodejs и запускает node только в том случае, если nodejs нет. У меня есть последняя версия node, связанная с моим каталогом ~ / bin, но nodejs запускает более старую версию, которую я забыл удалить, но до сих пор не вызывал проблем.
Поэтому люди с этой проблемой могут проверить, действительно ли node и nodejs используют одну и ту же версию node ...
источник
В моем случае я был в своем офисном прокси, который пропускал некоторые пакеты. Когда я вышел из офиса, прокси и попытался сделать
npm install
это сработало. Может это кому-то поможет.Но мне потребовалось несколько часов, чтобы понять, в чем причина.
источник
В моем случае я бежал
nodejs
вместоnode
. Из-заnodejs
установки менеджером пакетов:# which node /home/user/.nvm/versions/node/v11.6.0/bin/node # which nodejs /usr/bin/nodejs
источник
беги
npm config set python python2.7
и бегиnpm install
снова, вечеринка идет.источник
Я дважды сталкивался с этой ошибкой в электронном приложении, и оказалось, что проблема заключалась в том, что некоторые модули необходимо использовать из основного процесса, а не из процесса рендеринга. Ошибка произошла при использовании pdf2json, а также node-canvas. Перенос кода, который требовал этих модулей, из index.htm (процесс рендеринга) в main.js (основной процесс) устранил ошибку, и приложение было перестроено и отлично работало. Это не решит проблему во всех случаях, но это первое, что нужно проверить, если вы пишете электронное приложение и не столкнетесь ли с этой ошибкой.
источник
Вот что у меня сработало. Я использую обратную петлю модуль узла с связью с Electron Js и столкнулся с этой проблемой. После многих попыток у меня сработало следующее.
В вашем файле package.json в скриптах добавьте следующие строки:
... "scripts": { "start": "electron .", "rebuild": "electron-rebuild" }, ...
А затем запустите следующую команду
npm run rebuild
источник