I am hosted at Nexcess and tried to implement Grunt to assist with LESS development. I followed the Magento 2 docs for installing grunt. NodeJS 10.10.0 is installed.
The first deviation from the instructions has to do with how grunt, grunt-cli, and lessc were installed. The instructions say to install globally, with the -g parameter, but as this is shared hosting, that's not possible.
So instead I install locally to ~/public_html/. This creates a node_modules folder. This was followed up with npm install and npm update. I can now run grunt with its full path from the magento public_html folder, but I get an error:
[public_html]$ ./node_modules/grunt-cli/bin/grunt exec:blank Running "exec:blank" (exec) task /bin/sh: grunt: command not found Exited with code: 127. Error executing child process: Error: Process exited with code 127. Warning: Task "exec:blank" failed. Use --force to continue. Aborted due to warnings.
Running the clean: or less: commands both work on the blank theme. Only exec fails.. That is, I should say.. clean:blank works while less:blank results in some additional messages that I am not sure how to explain:
public_html]$ ./node_modules/grunt-cli/bin/grunt less:ms Running "less:ms" (less) task >> Destination pub/static/frontend/MS/theme-frontend-ms/en_US/css/styles-m.css not written because no source files were found. >> Destination pub/static/frontend/MS/theme-frontend-ms/en_US/css/styles-l.css not written because no source files were found. >> Destination pub/static/frontend/MS/theme-frontend-ms/en_US/css/email.css not written because no source files were found. >> Destination pub/static/frontend/MS/theme-frontend-ms/en_US/css/email-inline.css not written because no source files were found.