Read the statement by Michael Teeuw here.
Default Weather module still not displaying
-
-
@sdetweil Hi Sam, Many thanks for the suggestion - I followed your advice on that page. Here’s what happened halfway through:
from ../src/epoll.cc:11: /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:45: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_ reference’? 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^~~~~~~~~~~~~~~~~~~~~ | is_lvalue_reference /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:66: warning: logical not is only applied to the left hand side of comparison [-Wlogic al-not-parentheses] 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:67: error: template argument 1 is invalid 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:106:71: error: expected unqualified-id before ‘>’ token 106 | template <class U, std::enable_if_t<!std::is_lvalue_reference_v<U>>*> | ^ /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epoll/20.0.1/include/node/v8-ma ybe.h:123:43: error: ‘is_lvalue_reference_v’ is not a member of ‘std’; did you mean ‘is_lvalue_ reference’? 123 | template <class T, std::enable_if_t<!std::is_lvalue_reference_v<T>>* = nullptr>
and finally:
✖ MagicMirror Rebuild Failed An unhandled error occurred inside electron-rebuild node-gyp failed to rebuild '/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/epo ll'. Error: `make` failed with exit code: 2
This will all mean a lot more to you than it does for me.
-
@sdetweil And this is the final part of the error message, in bright red:
at ModuleRebuilder.rebuildNodeGypModule (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor /node_modules/magicmirror-rebuild/build/module-rebuilder.js:193:19) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Rebuilder.rebuildModuleAt (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node _modules/magicmirror-rebuild/build/rebuild.js:180:9) at async Rebuilder.rebuild (/home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules /magicmirror-rebuild/build/rebuild.js:143:17) at async /home/<myusername>/MagicMirror/modules/MMM-PIR-Sensor/node_modules/magicmirror-rebuil d/build/cli.js:141:9
-
@Blackeye hm. 1st time I’ve seen his tools fail…
@bugsounet any guidance
-
@sdetweil yes
epoll/20.0.1
means it uses electron v20.0.1
for MagicMirror instead of v19.x that why it crash.I’ll leave it up to you to explain it :)
-
@Blackeye ok, heres a way around the problem
fix MM install to have one new tool
cd ~/MagicMirror npm install electron-rebuild
fix MMM-PIR-Sensor
cd ~/MagicMirror/modules/MMM-PIR-Sensor nano package.json
scroll down to
"scripts": { "postinstall": "node_modules/.bin/electron-rebuild -e ../../node_modules/electron" },
change the postinstall line so it looks like this
"scripts": { "postinstall": "~/MagicMirror/node_modules/.bin/electron-rebuild -e ../../node_modules/electron" },
ctrl-o to save the updated package.json
ctrl-x to exit the editorthen
npm install
should work correctly now
I just tested this on my MM 2.20 version, on both my linux machine and my pi4 with bullseye
-
@sdetweil said in Default Weather module still not displaying:
~/MagicMirror/node_modules/.bin/electron-rebuild -e …/…/node_modules/electron
Yes! It installed correctly this time, so that change in the path did the trick. I did get some warnings however:
npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain cir cumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
So it is not quite a perfect solution, but it works!
Many thanks for the suggestions and the solution! -
@Blackeye ignore the warnings, nothing we can do about them.
the ‘problem’ here is that the compiler needs to know what version of electron to build for, but can’t figure it out.
using electron-rebuild from the mm libs solves that