Add dev task to watch and recompile on source changes

This commit is contained in:
Samer Albahra
2019-05-13 14:04:35 -05:00
parent ca4ec4a168
commit 4bb74de38a
3 changed files with 43 additions and 1 deletions

6
package-lock.json generated
View File

@@ -1745,6 +1745,12 @@
}
}
},
"node-watch": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.6.2.tgz",
"integrity": "sha512-qmb/2ehVk1DC4gZYox7JgWXNucKnVk7uQmcoSeRaC7kzXsT8VOPIe7mbrR9Vc2TpGggS2yGUcgC98A2fKE53AA==",
"dev": true
},
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",

View File

@@ -5,7 +5,8 @@
"repository": "https://github.com/OpenSprinkler/Weather-Weather",
"scripts": {
"test": "mocha --exit test",
"start": "node js/server",
"start": "npm run compile && node js/server",
"dev": "node scripts/serve",
"compile": "tsc"
},
"dependencies": {
@@ -31,6 +32,7 @@
"hippie": "^0.5.2",
"istanbul": "^0.4.5",
"mocha": "^5.2.0",
"node-watch": "^0.6.2",
"nock": "^9.6.1",
"typescript": "^3.4.5"
}

34
scripts/serve.js Normal file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env node
/**
* This is used for development only and simply launches a web server and
* injects a script to trigger a reload when a file changes in the serve
* directory.
*/
const exec = require( "child_process" ).exec;
const path = require( "path" );
const routesPath = path.join( __dirname, "../routes/" );
const serverPath = path.join( __dirname, "../server.ts" );
const watch = require( "node-watch" );
compile();
console.log( "OpenSprinkler Development Server Started..." );
/** Start the web server */
exec( `nodemon js/server` );
/** Watch for changes and recompile */
watch( routesPath, { recursive: true }, recompile );
watch( serverPath, { recursive: true }, recompile );
function recompile() {
console.log( "Changes detected, reloading..." );
compile();
}
function compile() {
exec( `npm run compile` );
}