毎回tsファイルを変換することなく、TypeScriptとAngularアプリケーションを使ってdevサーバーを実行しようとしています。 ts-node
を使って実行できることがわかりましたが、gulp watchのように.ts
ファイルを監視してapp/serverをリロードしたいと思います。
Nodemonのapiを使用してカスタムコマンドを実行するためにデフォルトの動作を変更できることに気付くまで、私は開発環境でも同じことに苦労していました。この例は次のようになります。
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
あるいは、Sandokanが次の内容のnodemon.jsonファイルを推奨し、nodemonを実行してnodemonの設定を外部化し、さらにnodemonを実行します。
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
こうすることで、基盤となる実装を気にせずにts-nodeプロセスをlive-reloadすることができます。
乾杯!
nodemonの最新版に更新されました:
以下の内容でnodemon.json
ファイルを作成します。
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node ./src/index.ts"
}
Npmスクリプトを使用して、HeberLZの answer に代わるものがあります。
私のpackage.json
:
"scripts": {
"watch": "nodemon -e ts -w ./src -x npm run watch:serve",
"watch:serve": "ts-node --inspect src/index.ts"
},
-e
フラグは探す範囲を設定します。-w
は監視ディレクトリを設定します。-x
はスクリプトを実行します。--inspect
スクリプトのwatch:serve
は、実際にはnode.jsフラグです。これは、デバッグプロトコルを有効にするだけです。
私はnodemon
とts-node
を捨てて、もっと良い代替方法ts-node-dev
https://github.com/whitecolor/ts-node-dev を選びました。
ts-node-dev src/index.ts
を実行するだけです
今回は、tsc-watch
ライブラリを作成しました。 npm で見つけることができます。
明らかなユースケースは次のようになります。
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
"watch": "nodemon --exec ts-node -- ./src/index.ts"
のscripts
セクションにpackage.json
を追加します。
とやった
"start": "nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec ts-node src/index.ts"
糸の開始.. ts-nodeは「ts-node」とは異なります
あなたが使用することができます ts-node-dev
必要なファイルのいずれかが変更されると(標準のnode-devとして)ターゲットノードプロセスを再起動しますが、再起動の間にTypeScriptのコンパイルプロセスを共有します。
インストール
yarn add ts-node-dev --dev
そしてあなたのpackage.jsonはこのようになるでしょう
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"tsc": "tsc",
"dev": "ts-node-dev --respawn --transpileOnly ./src/index.ts",
"prod": "tsc && node ./build/index.js"
}
TypeScriptと密接に統合されているtsmon
https://www.npmjs.com/package/tsmon を使用し、インクリメンタルなトランスパイルとリロード機能を提供します。
私は、ts-node-dev
をインターフェースの変更を検出できないことに気づくまで使用していました。
インストール
npm install tsmon
TypeScriptプロジェクトフォルダに移動します
tsmon [you .ts file]