Read the statement by Michael Teeuw here.
[ERROR] _ is not defined
- 
 @sdetweil MM doesn’t work. I tried a config check but I have this error now. 
 I tried to “npm install eslint -g” but the error persistnpm run config:check magicmirror@2.31.0 config:check 
 node js/check_config.jsnode:internal/modules/cjs/loader:1404 
 throw err;
 ^Error: Cannot find module ‘eslint’ 
 Require stack:- /home/MYMIRR/MagicMirror/js/check_config.js
 at Module._resolveFilename (node:internal/modules/cjs/loader:1401:15)
 at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
 at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
 at Module._load (node:internal/modules/cjs/loader:1211:37)
 at TracingChannel.traceSync (node:diagnostics_channel:322:14)
 at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
 at Module.require (node:internal/modules/cjs/loader:1487:12)
 at require (node:internal/modules/helpers:135:16)
 at Object. (/home/MYMIRR/MagicMirror/js/check_config.js:6:20)
 at Module._compile (node:internal/modules/cjs/loader:1730:14) {
 code: ‘MODULE_NOT_FOUND’,
 requireStack: [ ‘/home/MYMIRR/MagicMirror/js/check_config.js’ ]
 }
 Node.js v22.15.0 
- /home/MYMIRR/MagicMirror/js/check_config.js
- 
 @nowayto show me the ~/MagicMirror/installers/upgrade.log note: I had a typo in log filename and then do cd ~/MagicMirror npm install
- 
 Upgrade started - Sat May 10 00:06:51 CEST 2025 
 system is Linux magicmirror2 6.1.21-v7+ #1642 SMP Mon Apr 3 17:20:52 BST 2023 armv7l GNU/Linux
 doing test run = true, NO updates will be applied!
 the os is PRETTY_NAME=“Raspbian GNU/Linux 11 (bullseye)” NAME=“Raspbian GNU/Linux” VERSION_ID=“11” VERSION=“11 (bullseye)” VERSION_CODENAME=bullseye ID=raspbian ID_LIK>
 architecture from dpkg is armhf
 ^[[96mCheck current Node installation …^[[0m
 ^[[0mNode currently installed. Checking version number.
 ^[[0mMinimum Node version: ^[[1mv22.14.0^[[0m
 ^[[0mInstalled Node version: ^[[1mv22.15.0^[[0m
 ^[[92mNo Node.js upgrade necessary.^[[0m
 ^[[96mCheck current NPM installation …^[[0m
 ^[[0mNPM currently installed. Checking version number.
 ^[[0mMinimum npm version: ^[[1mV10.9.2^[[0m
 ^[[0mInstalled npm version: ^[[1mV11.3.0^[[0m
 ^[[92mNo npm upgrade necessary.^[[0msaving custom.css 
 remote name = origin
 upgrading from version 2.31.0 to 2.31.0
 fetching latest revisions
 git fetch rc=0
 current branch = master
 On branch master
 Your branch is up to date with ‘origin/master’.Untracked files: 
 (use “git add …” to include in what will be committed)
 core
 errorcal.txt
 errorcal2.txt
 errorcal3.txt
 errorcal4.txt
 errorcal5.txt
 nohup.out
 run-start.sh
 splashscreen/nothing added to commit but untracked files present (use “git add” to track) 
 no files different from github version
- 
 @sdetweil npm install results ~/MagicMirror $ npm install 
 npm error code ENOTEMPTY
 npm error syscall rename
 npm error path /home/MYMIRR/MagicMirror/node_modules/es-abstract
 npm error dest /home/MYMIRR/MagicMirror/node_modules/.es-abstract-fSsKyNTi
 npm error errno -39
 npm error ENOTEMPTY: directory not empty, rename ‘/home/MYMIRR/MagicMirror/node_modules/es-abstract’ -> ‘/home/MYMIRR/MagicMirror/node_modules/.es-abstract-fSsKyNTi’
 npm error A complete log of this run can be found in: /home/MYMIRR/.npm/_logs/2025-05-10T06_40_55_661Z-debug-0.logTried with sudo ~/MagicMirror $ sudo npm install 
 npm error code EBADENGINE
 npm error engine Unsupported engine
 npm error engine Not compatible with your version of node/npm: magicmirror@2.31.0
 npm error notsup Not compatible with your version of node/npm: magicmirror@2.31.0
 npm error notsup Required: {“node”:“>=22.14.0”}
 npm error notsup Actual: {“npm”:“11.2.0”,“node”:“v20.18.1”}
 npm error A complete log of this run can be found in: /root/.npm/_logs/2025-05-10T06_41_52_949Z-debug-0.lognpm seems to see an old version of nodejs but: ~/MagicMirror $ node -v 
 v22.15.0I don’t know what happened. 
 If it can help I had first problem after the MMM-SolarPicture
 but I’ve just installed it and configured it through config.js… nothing more than usual…but the actual behaviour is that pm2 status says it’s running, but on the monitor I see just the raspbian desktop │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ 
 ├────┼───────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
 │ 0 │ mm │ default │ N/A │ fork │ 4311 │ 19s │ 64 │ online │ 0% │ 2.6mb │ ber… │ disabled │
- 
 @nowayto two things doing test run = true, NO updates will be applied! 
 upgrading from version 2.31.0 to 2.31.0doing test run changes nothing, its a safety check and i wont let you upgrade over the same release accidentally so you need to rerun the command and add forceto the end 
- 
 @nowayto NEVER use sudo with any npm command the number in the pm2 status 4311 is the number of restarts youve got a mess now we HAVE to use sudo to undo it cd ~/MagicMirror sudo rm -rf node_modules cd fonts sudo rm -rf node_modules cd ..\vendor sudo rm-rf node_modules cd ..lets see about node which node n q to quit nvmdont do anything else til we figure out the nodejs problem 
- 
 @sdetweil I’m sorry :( I did it what you suggest and config:check gave me a module error again. Different than one before npm run config:check magicmirror@2.31.0 config:check 
 node js/check_config.jsnode:internal/modules/cjs/loader:1404 
 throw err;
 ^Error: Cannot find module ‘ajv’ 
 Require stack:After “require stack” there are other lines, if you need it, tell me. 
 Thanks
- 
 i said stop we need to fix nodejs so npm install will work node -v says something 
 and npm install says node is differenti am trying to figure out where node is installed and by who 
 system, nvm or nyou didn’t give me answers to the commands i provided 
- 
 which node gave me 
 /home/MYMIRR/.nvm/versions/node/v22.15.0/bin/noden gave me 
 node/20.18.1Use up/down arrow keys to select a version, return key to install, d to delete, q to quit nvm gave me Node Version Manager (v0.39.5) Note: refers to any version-like string nvm understands. This includes : - full or partial version numbers, starting with an optional “v” (0.10, v0.1.2 , v1)
- default (built-in) aliases: node, stable, unstable, iojs, system
- custom aliases you define with nvm alias foo
 followed by a lot of options 
- 
 @nowayto ok nvm and n do the same function but differently i use n in my scripts because it runs everywhere so lets turn off nvm nvm deactivate nvm unload cd ~ rm -rf .nvmnow which node 
 should find /usr/local/bin/nodenow we need n to get to node 22.14.0 sudo n 22.14.0now node -v should return 22.14.0 if so, do cd ~/MagicMirror npm installnow MagicMirror should run 
