Read the statement by Michael Teeuw here.
Electron error: Cannot find module 'envsub'
-
I have the same problem. I updated using
git pull && npm run install-mm
I also ran npm install in each module, only 1 seemed to update. Rebooted and still get same error:
@raspberrypi:~/MagicMirror $ npm run start > magicmirror@2.23.0 start > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js App threw an error during load Error: Cannot find module 'envsub' Require stack: - /home/pi/MagicMirror/js/app.js - /home/pi/MagicMirror/js/electron.js - /home/pi/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js - at Module._resolveFilename (node:internal/modules/cjs/loader:963:15) at n._resolveFilename (node:electron/js2c/browser_init:2:109416) at Module._resolveFilename (/home/pi/MagicMirror/node_modules/module-alias/index.js:49:29) at Module._load (node:internal/modules/cjs/loader:811:27) at f._load (node:electron/js2c/asar_bundle:2:13328) at Module.require (node:internal/modules/cjs/loader:1035:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/home/pi/MagicMirror/js/app.js:13:16) at Module._compile (node:internal/modules/cjs/loader:1141:14) at Module._extensions..js (node:internal/modules/cjs/loader:1196:10) A JavaScript error occurred in the main process Uncaught Exception: Error: Cannot find module 'envsub' Require stack: - /home/pi/MagicMirror/js/app.js - /home/pi/MagicMirror/js/electron.js - /home/pi/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js - at Module._resolveFilename (node:internal/modules/cjs/loader:963:15) at n._resolveFilename (node:electron/js2c/browser_init:2:109416) at Module._resolveFilename (/home/pi/MagicMirror/node_modules/module-alias/index.js:49:29) at Module._load (node:internal/modules/cjs/loader:811:27) at f._load (node:electron/js2c/asar_bundle:2:13328) at Module.require (node:internal/modules/cjs/loader:1035:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/home/pi/MagicMirror/js/app.js:13:16) at Module._compile (node:internal/modules/cjs/loader:1141:14) at Module._extensions..js (node:internal/modules/cjs/loader:1196:10) MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri) failed to load driver: kms_swrast MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri) failed to load swrast driver ^C/home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT
Any other ideas?
Thanks -
@Roncham I can only say that the npm run did not work
from the MagicMirror folder do
npm install --omit=dev
-
@sdetweil said in Electron error: Cannot find module 'envsub':
npm install --omit=dev
That worked thank you!
-
@sdetweil (posting it in case somebody else is going to need it)
In my case, the NPM error was:
npm ERR! code EBADENGINE npm ERR! engine Unsupported engine npm ERR! engine Not compatible with your version of node/npm: magicmirror@2.31.0 npm ERR! notsup Not compatible with your version of node/npm: magicmirror@2.31.0 npm ERR! notsup Required: {"node":">=22.14.0"} npm ERR! notsup Actual: {"npm":"8.19.4","node":"v16.20.2"}
MagicMirror 2.31.0 needs at least Node 22, but through APT command, the Raspbian repos go up to 16. To solve this, I installed N, the Node version manager as an NPM module, then udpated Node that way.
$ sudo npm install -g n added 1 package, and audited 2 packages in 2s $ sudo n 22 installing : node-v22.14.0 mkdir : /usr/local/n/versions/node/22.14.0 fetch : https://nodejs.org/dist/v22.14.0/node-v22.14.0-linux-armv7l.tar.xz copying : node/22.14.0 installed : v22.14.0 (with npm 10.9.2) Note: the node command changed location and the old location may be remembered in your current shell. old : /usr/bin/node new : /usr/local/bin/node If "node --version" shows the old version then start a new shell, or reset the location hash with: hash -r (for bash, zsh, ash, dash, and ksh) rehash (for csh and tcsh) $ node -v v16.20.2 $ hash -r $ node -v v22.14.0
Then rerun
npm run install-mm
and it will work.Hope it helps. :)
-
@hecaru yes, and IF you use my upgrade script, it will handle that for you…
same place as the install script