Read the statement by Michael Teeuw here.
Error: ENOENT: no such file or directory, open 'package.json'
-
I have installed MM for the first time (Raspberry Pi 3 Model B) and everything seemed to be working fine, just playing around with stopping and starting with PM2, all was good. But I tried rebooting the pi to check the autoboot and MM does not work at all any more. It goes briefly to the MM loading screen before crashing and going to the normal pi screen. When I try to boot through terminal the MM loading screen does not show and nothing comes up. The error log gives this message:
Error: ENOENT: no such file or directory, open 'package.json' at Object.fs.openSync (fs.js:646:18) at Object.fs.readFileSync (fs.js:551:33) at Object. (/home/pi/MagicMirror/js/app.js:15:32) at Module._compile (module.js:643:30) at Object.Module._extensions..js (module.js:654:10) at Module.load (module.js:556:32) at tryModuleLoad (module.js:499:12) at Function.Module._load (module.js:491:3) at Module.require (module.js:587:17) at require (internal/module.js:11:18)
I am pretty new to all this and it is the first time I have used JS.
Thanks,
Ben -
An ENOENT error usually indicates that a command was issued in the wrong directory. This would occur if you were trying to run
npm start
in a directory other thanpi@raspberry:~/MagicMirror$
Edit: The
pm2 start mm
command can be run from any directory (I think) although this would not account for your mirror crashing as your described -
@Mykle1 I was using pm2 start, npm from the directory seems to work fine. Am trying some forum posts like https://stackoverflow.com/questions/24468041/npm-install-gives-error-cant-find-a-package-json-file but nothing has worked yet.
-
Seeing that the last thing you were doing was “just playing around with stopping and starting with PM2, all was good. But I tried rebooting the pi to check the autoboot” let’s assume that PM2 is the problem. There are 2 common missed steps when installing PM2.
-
is when the terminal actually gives you a command that you have to execute immediately after it is presented by the terminal.
-
The other is not saving the state of PM2, in which case, it would not function properly, if at all.
I’m not saying this is what happened. I’m just trying to narrow it down a bit
-
-
-
@cruunnerr said in Error: ENOENT: no such file or directory, open ‘package.json’:
Unfortunately the pm2 start command can NOT be used in every direction.
Tell that to my mirror, which executes
pm2 start mm
andpm2 stop mm
in ANY directory. -
@cruunnerr @Mykle1 You both are right.
@cruunnerr is executing the Shell script, which must be executed in the same directory as the script is located in, except you define the path in the
pm2
command like thispm2 start /path/to/script.sh
(also given, the script used absolute paths, or can handle the “remote” execution)@Mykle1 You are executing the
pm2
“deamon”, which can be executed everywhere