tsc-watch
                                
                                 tsc-watch copied to clipboard
                                
                                    tsc-watch copied to clipboard
                            
                            
                            
                        The TypeScript compiler with --watch and a new onSuccess argument
The nodemon for TypeScript
tsc-watch starts a TypeScript compiler with --watch parameter, with the ability to react to compilation status.
tsc-watch was created to allow an easy dev process with TypeScript. Commonly used to restart a node server, similar to nodemon but for TypeScript.
| Argument | Description | 
|---|---|
| --onSuccess COMMAND | Executes COMMANDon every successful compilation. | 
| --onFirstSuccess COMMAND | Executes COMMANDon the first successful compilation. | 
| --onFailure COMMAND | Executes COMMANDon every failed compilation. | 
| --onCompilationStarted COMMAND | Executes COMMANDon every compilation start event (initial and incremental). | 
| --onCompilationComplete COMMAND | Executes COMMANDon every successful or failed compilation. | 
| --maxNodeMem | Calls nodewith a specific memory limitmax_old_space_size, to use if your project needs more memory. | 
| --noColors | By default tsc-watch adds colors the output with green on success, and in red on failure. Add this argument to prevent that. | 
| --noClear | In watch mode the tsccompiler clears the screen before reportingAdd this argument to prevent that. | 
| --silent | Do not print any messages on stdout. | 
| --compiler PATH | The PATHwill be used instead of typescript compiler.Default is typescript/bin/tsc | 
Notes:
- 
That all the above COMMANDs will be killed on process exit. (UsingSIGTERM)
- 
A COMMANDis a single command and not multi command likescript1.sh && script2.sh
- 
Any child process ( COMMAND) will be terminated before creating a new one.
Install
npm install tsc-watch --save-dev
## for command-line usage
npm install -g typescript tsc-watch
Usage
From Command-Line
## Watching a project (with tsconfig.json)
tsc-watch --onSuccess "node ./dist/server.js"
## Beep on failure
tsc-watch --onFailure "echo Beep! Compilation Failed"
## Watching a single file
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
## Custom compiler
tsc-watch --onSuccess "node ./dist/server.js" --compiler my-typescript/bin/tsc
From npm script
"dev-server": "tsc-watch --noClear -p ./src/tsconfig.json --onSuccess \"node ./dist/server.js\"",
From javascript
You can see a detailed example here
The client is implemented as an instance of Node.JS's EventEmitter, with the following events:
- started- Emitted upon the compilation start (initial or incremental).
- first_success- Emitted upon first successful compilation.
- subsequent_success- Emitted upon every subsequent successful compilation.
- compile_errors- Emitted upon every failing compilation.
- file_emitted- Emitted upon every file transpiled if- --listEmittedFilesis used.
Once subscribed to the relevant events, start the client by running watch.start()
To kill the client, run watch.kill()
Example usage:
const TscWatchClient = require('tsc-watch/client');
const watch = new TscWatchClient();
watch.on('started', () => {
  console.log('Compilation started');
});
watch.on('first_success', () => {
  console.log('First success!');
});
watch.on('success', () => {
  // Your code goes here...
});
watch.on('compile_errors', () => {
  // Your code goes here...
});
watch.start('--project', '.');
try {
  // do something...
} catch (e) {
  watch.kill(); // Fatal error, kill the compiler instance.
}
Notes:
- The (onSuccess)COMMANDwill not run if the compilation failed.
- tsc-watchis using the currently installed TypeScript compiler.
- tsc-watchis not changing the compiler, just adds the new arguments, compilation is the same, and all other arguments are the same.