Read the statement by Michael Teeuw here.
Electron error: Cannot find module 'envsub'
-
Hi there,
my MM unfortunately does not load anymore.
I already installed envsub via npm which did not help.Is there anyone who has an idea what this could be?
Thank you very much, greatly appreciated!
The logs state the following:
0|mm | App threw an error during load 0|mm | Error: Cannot find module 'envsub' 0|mm | Require stack: 0|mm | - /home/user/MagicMirror/js/app.js 0|mm | - /home/user/MagicMirror/js/electron.js 0|mm | - /home/user/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js 0|mm | - 0|mm | at Module._resolveFilename (node:internal/modules/cjs/loader:963:15) 0|mm | at n._resolveFilename (node:electron/js2c/browser_init:2:109416) 0|mm | at Module._resolveFilename (/home/user/MagicMirror/node_modules/module-alias/index.js:49:29) 0|mm | at Module._load (node:internal/modules/cjs/loader:811:27) 0|mm | at f._load (node:electron/js2c/asar_bundle:2:13328) 0|mm | at Module.require (node:internal/modules/cjs/loader:1035:19) 0|mm | at require (node:internal/modules/cjs/helpers:102:18) 0|mm | at Object.<anonymous> (/home/user/MagicMirror/js/app.js:13:16) 0|mm | at Module._compile (node:internal/modules/cjs/loader:1141:14) 0|mm | at Module._extensions..js (node:internal/modules/cjs/loader:1196:10) 0|mm | A JavaScript error occurred in the main process 0|mm | Uncaught Exception: 0|mm | Error: Cannot find module 'envsub' 0|mm | Require stack: 0|mm | - /home/user/MagicMirror/js/app.js 0|mm | - /home/user/MagicMirror/js/electron.js 0|mm | - /home/user/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js 0|mm | - 0|mm | at Module._resolveFilename (node:internal/modules/cjs/loader:963:15) 0|mm | at n._resolveFilename (node:electron/js2c/browser_init:2:109416) 0|mm | at Module._resolveFilename (/home/user/MagicMirror/node_modules/module-alias/index.js:49:29) 0|mm | at Module._load (node:internal/modules/cjs/loader:811:27) 0|mm | at f._load (node:electron/js2c/asar_bundle:2:13328) 0|mm | at Module.require (node:internal/modules/cjs/loader:1035:19) 0|mm | at require (node:internal/modules/cjs/helpers:102:18) 0|mm | at Object.<anonymous> (/home/user/MagicMirror/js/app.js:13:16) 0|mm | at Module._compile (node:internal/modules/cjs/loader:1141:14) 0|mm | at Module._extensions..js (node:internal/modules/cjs/loader:1196:10) 0|mm | MESA-LOADER: failed to retrieve device information 0|mm | MESA-LOADER: failed to retrieve device information 0|mm | MESA-LOADER: failed to retrieve device information 0|mm | MESA-LOADER: failed to open kms_swrast (search paths /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri) 0|mm | failed to load driver: kms_swrast 0|mm | MESA-LOADER: failed to open swrast (search paths /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri) 0|mm | failed to load swrast driver -
@asd ok, got it.
you forgot the second step of upgrade
git pull && npm install
you MUST run npm install
and POSSIBLY. have to run npm install or electron-rebuild in all the installed modules
due to the possible nodejs change and electron change. -
-
@sdetweil thanks for your help.
The MagicMirror was running well on git commit f14e956 from Feb, 7th 2023.
When I upgraded viagit pullwithin the ~/MagicMirror folder, the miror would not start anymore.Hence I tried to reverse the git pull via
git reset --hard f14e956which unfortunately did not help either.Besides this, I previously ran the standard
apt update && upgrade -y. However, the mirror worked fine when restarting after this viapm2 restart mm. S o I do not think it was based of this.For reference, I run MM on a Raspberry Pi 4.
-
@asd ok, got it.
you forgot the second step of upgrade
git pull && npm install
you MUST run npm install
and POSSIBLY. have to run npm install or electron-rebuild in all the installed modules
due to the possible nodejs change and electron change. -
@sdetweil awesome. It works again. Thank you very much. greatly appreciated!
I have done my updates like this before and seem to have forgotten it this time.
-
I have the same problem. I updated using
git pull && npm run install-mmI 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 SIGINTAny 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.0Then rerun
npm run install-mmand 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
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login