node.jscroncentosnvmforever

Forever, NVM, Nodejs with Crontab, app throws an error


I'm trying to run my node app on reboot using forever and cron job.

I have installed node via NVM.

this is my crontab:

SHELL=/bin/bash
BASH_ENV=~/.bashrc
@reboot /home/USERNAME/.nvm/versions/node/v15.0.0/bin/forever 
        start -c /home/USERNAME/.nvm/versions/node/v15.0.0/bin/node
        /home/USERNAME/my-node-app/server.js

It seems the cronjob is running forever successfully, however, the app throws an error:

/home/USERNAME/my-node-app/node_modules/@babel/core/lib/config/files/plugins.js:152
throw e;
^
Error: Cannot find module '@babel/plugin-transform-runtime' from '/'

The path to node_modules seems to be correct, and babel is configured correctly, the app runs if I run forever without cronjob.

require("@babel/register")({
  presets: ["@babel/preset-env"],
  plugins: ["@babel/plugin-transform-runtime"],
});

Solution

  • Ok solved!!

    I changed my crontab script to first navigating to app directory and then execute forever from there

    SHELL=/bin/bash
    BASH_ENV=~/.bashrc
    @reboot cd /home/USERNAME/my-ode-app/server.js && 
    /home/USERNAME/.nvm/versions/node/v15.0.0/bin/forever 
    start -c /home/USERNAME/.nvm/versions/node/v15.0.0/bin/node server.js