简体   繁体   中英

dyld: lazy symbol binding failed: Symbol not found: _node_module_register

I have tried reinstalling and rebuilding npm, but the problem still persists.

Initially, the problem is with the module mongodb : I don't have that package, so I installed mongodb using this command npm install mongodb .

It shows me the following error:
dyld: Symbol not found: _node_module_register

Try deleting your node_modules folder and running npm install again.

rm -rf node_modules/
npm install

That should fix it.

Basically this error means - some binary packages was built under different node.js versions and not compatible to each other .

  1. Via NVM make sure you are using proper version of node.js, run node -v ;
  2. After installing and switching to proper node.js version via nvm run npm update ;
  3. After all packages are updated ( or downgraded ) to compatible versions, run npm rebuild ;
  4. Note: npm rebuild might throw errors - just run npm rebuild again and again until it runs successfully.

Note: some commands may ask for root (sudo) permissions, - it depends from how you have installed packages, npm and node itself previously. nvm - never needs to be run as root (sudo).

This is what worked for me:

rm -rf node_modules/
sudo npm install

If you just updated node and are running scripts via WebStorm, make sure you edit your Run/Debug Configurations and update the path to the Node Interpreter. I was using the node in

/usr/local/bin/node

, but after installing Node 4 using nvm, I need to use

/path/to/.nvm/v4.2.2/bin/node

Make sure your nvm is pointing to the correct nodejs version. For me I used different (higher) while installing the npm modules. So just ran **nvm use** v14.7.0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM