diff --git a/development-server.js b/development-server.js index 8435fb0f4d..b59f0cb5e0 100644 --- a/development-server.js +++ b/development-server.js @@ -1,6 +1,7 @@ require('@babel/register'); const { spawn } = require('child_process'); +const nodemon = require('nodemon'); const spawnOpts = { stdio: 'inherit', @@ -8,6 +9,19 @@ const spawnOpts = { }; // spawns loopback -spawn('DEBUG=fcc* babel-node', ['./server/server.js'], spawnOpts); + +nodemon({ + script: './server/server.js', + ext: 'js json', + // --silent squashes an ELIFECYCLE error when the server exits + exec: 'npm run --silent babel-dev-server', + watch: './server', + spawn: true +}); + +nodemon + .on('restart', function nodemonRestart(files) { + console.log('App restarted due to: ', files); + }); // spawns gatsby in development mode spawn('npm', ['run', 'develop'], spawnOpts); diff --git a/package.json b/package.json index dfdeb035bc..352e833242 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,11 @@ "repository": "freecodecamp/freecodecamp", "scripts": { "build": "NODE_ENV=production gatsby build", + "babel-dev-server": "babel-node ./server/server.js", "commit": "git-cz", "commitmsg": "validate-commit-msg", "develop": "gatsby develop", - "develop-server": "node ./development-server.js", + "develop-server": "DEBUG=fcc* node ./development-server.js", "ensure-env": "node ./config/ensure-env.js", "lint": "npm run lint-js && npm run lint-json", "lint-js": "eslint --ext=.js,.jsx gulpfile.js server/ common/ config/ client/",