Is there a way to use npm scripts to run tsc -watch && nodemon --watch?
I think what you want is something like this (my current setup):
"scripts": { "compile": "tsc && node app.js", "dev": "./node_modules/nodemon/bin/nodemon.js -e ts --exec \"npm run compile\""}
I created two scripts "compile" and "dev". To start developing you simply run npm run dev
which starts nodemon and makes it watch .ts files (using the -e
flag). Then, every time a .ts file changes nodemon will exec
the compile task which basically compiles and runs the node app.
While using concurrently is a good option, my setup guarantees that tsc
's work is done before attempting to execute the resulting .js files.
I have been using AlterX's solution for a while now and it has worked perfectly, but I have found it to be rather slow. Instead, I am now using tsc-watch. It makes tsc use incremental compilation similar to the -w
flag, making the restart of the application much faster.
It's as easy as putting something similar to this in your package.json:
"scripts": { "start": "./node_modules/.bin/tsc-watch --onSuccess \"node .\""}
Try to add this to your package.json:
"scripts": { "start": "concurrently --kill-others \"tsc -w\" \"nodemon dist/app.js\"",}
And also add this npm packages (concurrently, nodemon, typescript) to your package.json:
"devDependencies": { "concurrently": "^2.2.0", "typescript": "^1.8.10", "nodemon": "^1.9.2",}