nodemon實現(xiàn)Typescript項目熱更新的示例代碼
我們都知道nodemon可以直接用來在開發(fā)環(huán)境下運行js文件,可以在文件改變時自動刷新和重啟服務器。但是最近剛好在學typescript,所以就想使用ts來寫,也想達到同樣的效果,總結一下方法,大概有如下幾種:
nodemon+tsc:
這個方法很簡單,首先通過tsc將我們的ts文件編譯到dist目錄下,然后再通過nodemon直接運行dist目錄下的文件即可。至于ts的輸出目錄相關配置可在tsconfig.js中設置。
tsc && nodemon --watch dist/index.js
但是這種方式有個缺點,就是nodemon只監(jiān)聽了dist目錄,可能有時候你修改了源碼并不能觸發(fā)熱更新,另外還有個問題就是多了一個dist目錄中轉,感覺不爽。
nodemon+ts-node:
命令如下:
nodemon -e ts,tsx --exec ts-node ./index.ts"
大概意思就是監(jiān)聽文件增加ts、tsx兩種文件類型,使用ts-node運行index.ts文件。
當然,上述參數(shù)是設置在命令行中的,也可以在nodemon.json中設置:
{
"verbose": false,
"debug": false,
"exec": "ts-node ./index.ts",
"ignore": [
"mochawesome-report",
"node_modules",
"./test",
"**/*.d.ts",
"*.test.ts",
"*.spec.ts",
"fixtures/*",
"test/**/*",
"docs/*"
],
"events": {
"restart": ""
},
"watch": ["./app", "./configs", "./app.ts"],
"ext": "ts tsx",
"inspect": true
}
如果有使用到tsx文件,記得在tsconfig.json文件中將jsx取消注釋,否則編譯時可能會提示錯誤。
除了上述兩種方法,今天無意中試了下直接使用nodemon來執(zhí)行ts文件,發(fā)現(xiàn)控制臺報錯了,原諒我是個英語渣,不明白具體說了什么,但是看到了ts-node的身影,果斷安裝ts-node再試,竟然成功了。
nodemon ./index.ts
但是這樣修改了ts文件不會熱更新,可以在nodemon.json文件中將ext屬性添加上ts就可以了。
{
"restartable": "rs",
"ignore": [".git", "node_modules/**", "client/*", "dist", ".cache", "logs"],
"verbose": true,
"execMap": {
"": "node",
"js": "node --harmony"
},
"events": {
"start": "",
"crash": "",
"exit": "",
"restart": ""
},
"ext": "js json ts tsx",
"watch": ["./**"],
"env": {
"NODE_ENV": "development",
"PORT": "3002"
},
"legacy-watch": false
}
當然除了上述方式,還可以使用構建工具來進行處理,如webpack,parcel等,當然如果大家有其他好的建議,歡迎交流。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法
這篇文章主要給大家介紹了在Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。2017-06-06
Node.js 利用cheerio制作簡單的網(wǎng)頁爬蟲示例
本篇文章主要介紹了Node.js 利用cheerio制作簡單的網(wǎng)頁爬蟲示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
詳解nodejs express下使用redis管理session
本篇文章主要介紹了詳解nodejs express下使用redis管理session ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04

