Read the statement by Michael Teeuw here.
Cannot find module 'node-fetch' error with multiple MM modules
-
Hi,
I have several failing with the “Cannot find module ‘node-fetch’” error. (see trace below)
I have seen this with similar other (older) modules, and sadly I have not been able to fix this.https://github.com/alonsourbano/publika
https://github.com/ZakarFin/mm-hsl-timetable
https://github.com/cSharpBastard/mmm-nordic-electrical-spot-pricesBrowsing the forums, there seems to be similar issues with other modules after the MM 2.25.0 version.
Things tried (which I can recall):
- npm install of that missing ‘node-fetch’
https://forum.magicmirror.builders/topic/15778/fix-for-black-screen-in-2-16-and-later?page=1 - Fresh MM installations with Node.js version 20
https://github.com/nodesource/distributions - downgrading to Node.js version 18
All with similar results. Any advice appreciated, thanks!
Respectfully,
Saku> magicmirror@2.25.0 start > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js [05.10.2023 22:14.53.083] [LOG] Starting MagicMirror: v2.25.0 [05.10.2023 22:14.53.090] [LOG] Loading config ... [05.10.2023 22:14.53.092] [DEBUG] config template file not exists, no envsubst [05.10.2023 22:14.53.097] [LOG] Loading module helpers ... [05.10.2023 22:14.53.099] [LOG] No helper found for module: alert. [05.10.2023 22:14.53.148] [LOG] Initializing new module helper ... [05.10.2023 22:14.53.149] [LOG] Module helper loaded: updatenotification [05.10.2023 22:14.53.150] [LOG] No helper found for module: clock. [05.10.2023 22:14.53.151] [LOG] No helper found for module: compliments. [05.10.2023 22:14.53.208] [LOG] Initializing new module helper ... [05.10.2023 22:14.53.209] [LOG] Module helper loaded: MMM-OpenWeatherMapForecast [05.10.2023 22:14.53.234] [ERROR] (node:7772) UnhandledPromiseRejectionWarning: Error: Cannot find module 'node-fetch' Require stack: - /home/saku/MagicMirror/modules/publika/node_helper.js - /home/saku/MagicMirror/js/app.js - /home/saku/MagicMirror/js/electron.js - /home/saku/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js - at node:internal/modules/cjs/loader:1084:15 at Function.<anonymous> (node:electron/js2c/browser_init:2:117500) at Module._resolveFilename (/home/saku/MagicMirror/node_modules/module-alias/index.js:49:29) at node:internal/modules/cjs/loader:929:27 at Function._load (node:electron/js2c/asar_bundle:2:13327) at Module.require (node:internal/modules/cjs/loader:1150:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.<anonymous> (/home/saku/MagicMirror/modules/publika/node_helper.js:3:15) at Module._compile (node:internal/modules/cjs/loader:1271:14) at Object..js (node:internal/modules/cjs/loader:1326:10) at Module.load (node:internal/modules/cjs/loader:1126:32) at node:internal/modules/cjs/loader:967:12 at Function._load (node:electron/js2c/asar_bundle:2:13327) at Module.require (node:internal/modules/cjs/loader:1150:19) at require (node:internal/modules/cjs/helpers:110:18) at loadModule (/home/saku/MagicMirror/js/app.js:180:19) (Use `electron --trace-warnings ...` to show where the warning was created)
- npm install of that missing ‘node-fetch’
-
@blackbull yes, I saw someone else with the same problem
it was the node-fetch version
do this
npm install node-fetch@2
-
@blackbull we remove node fetch from the magic mirror package on this release as we drop back to the integrated fetch that’s provided in node and in the electron browser unfortunately that breaks a bunch of modules.
So you can either NPM install it in every module that needs it or you can an NPM install it in the base once for all the modules
-
Thanks for info and pointers! Did the NPM install in base, but ended into a new obstacle.
BR,
Saku[05.10.2023 22:47.23.542] [ERROR] (node:8355) UnhandledPromiseRejectionWarning: Error [ERR_REQUIRE_ESM]: require() of ES Module /home/saku/MagicMirror/modules/publika/node_modules/node-fetch/src/index.js from /home/saku/MagicMirror/modules/publika/node_helper.js not supported. Instead change the require of index.js in /home/saku/MagicMirror/modules/publika/node_helper.js to a dynamic import() which is available in all CommonJS modules. at Function._load (node:electron/js2c/asar_bundle:2:13327) at Object.<anonymous> (/home/saku/MagicMirror/modules/publika/node_helper.js:3:15) at Function._load (node:electron/js2c/asar_bundle:2:13327) at loadModule (/home/saku/MagicMirror/js/app.js:180:19) at loadModules (/home/saku/MagicMirror/js/app.js:210:10) at async App.start (/home/saku/MagicMirror/js/app.js:258:3) (Use `electron --trace-warnings ...` to show where the warning was created)
-
@blackbull yes, I saw someone else with the same problem
it was the node-fetch version
do this
npm install node-fetch@2
-
@sdetweil YES! Big thanks! :)
That needed to be run in the specific module folder, installing that in MM base did not work.
Respectfully,
Saku -