nodemon實(shí)現(xiàn)Typescript項(xiàng)目熱更新的示例代碼
我們都知道nodemon可以直接用來在開發(fā)環(huán)境下運(yùn)行js文件,可以在文件改變時(shí)自動(dòng)刷新和重啟服務(wù)器。但是最近剛好在學(xué)typescript,所以就想使用ts來寫,也想達(dá)到同樣的效果,總結(jié)一下方法,大概有如下幾種:
nodemon+tsc:
這個(gè)方法很簡單,首先通過tsc將我們的ts文件編譯到dist目錄下,然后再通過nodemon直接運(yùn)行dist目錄下的文件即可。至于ts的輸出目錄相關(guān)配置可在tsconfig.js中設(shè)置。
tsc && nodemon --watch dist/index.js
但是這種方式有個(gè)缺點(diǎn),就是nodemon只監(jiān)聽了dist目錄,可能有時(shí)候你修改了源碼并不能觸發(fā)熱更新,另外還有個(gè)問題就是多了一個(gè)dist目錄中轉(zhuǎn),感覺不爽。
nodemon+ts-node:
命令如下:
nodemon -e ts,tsx --exec ts-node ./index.ts"
大概意思就是監(jiān)聽文件增加ts、tsx兩種文件類型,使用ts-node運(yùn)行index.ts文件。
當(dāng)然,上述參數(shù)是設(shè)置在命令行中的,也可以在nodemon.json中設(shè)置:
{
"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取消注釋,否則編譯時(shí)可能會(huì)提示錯(cuò)誤。
除了上述兩種方法,今天無意中試了下直接使用nodemon來執(zhí)行ts文件,發(fā)現(xiàn)控制臺(tái)報(bào)錯(cuò)了,原諒我是個(gè)英語渣,不明白具體說了什么,但是看到了ts-node的身影,果斷安裝ts-node再試,竟然成功了。
nodemon ./index.ts
但是這樣修改了ts文件不會(huì)熱更新,可以在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
}
當(dāng)然除了上述方式,還可以使用構(gòu)建工具來進(jìn)行處理,如webpack,parcel等,當(dāng)然如果大家有其他好的建議,歡迎交流。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 在Node.js中使用TypeScript的方法示例
- typescript在node.js下使用別名(paths)無效的問題詳解
- 使用nodejs?+?koa?+?typescript?集成和自動(dòng)重啟的問題
- 淺談TypeScript 用 Webpack/ts-node 運(yùn)行的配置記錄
- 手把手教你使用TypeScript開發(fā)Node.js應(yīng)用
- TypeScript開發(fā)Node.js程序的方法
- 詳解使用Typescript開發(fā)node.js項(xiàng)目(簡單的環(huán)境配置)
- Node.js和Express中設(shè)置TypeScript的實(shí)現(xiàn)步驟
相關(guān)文章
Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法
這篇文章主要給大家介紹了在Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06
Nodejs實(shí)現(xiàn)的一個(gè)靜態(tài)服務(wù)器實(shí)例
這篇文章主要介紹了Nodejs實(shí)現(xiàn)的一個(gè)靜態(tài)服務(wù)器實(shí)例,本文實(shí)現(xiàn)的靜態(tài)服務(wù)器實(shí)例包含cache功能、壓縮功能等,需要的朋友可以參考下2014-12-12
Node.js 利用cheerio制作簡單的網(wǎng)頁爬蟲示例
本篇文章主要介紹了Node.js 利用cheerio制作簡單的網(wǎng)頁爬蟲示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
使用socket.io實(shí)現(xiàn)簡單聊天室案例
這篇文章主要介紹了使用socket.io實(shí)現(xiàn)簡單聊天室案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Windows下快速搭建NodeJS本地服務(wù)器的步驟
本篇文章主要介紹了Windows下快速搭建NodeJS本地服務(wù)器的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-08-08
使用 Node.js 對文本內(nèi)容分詞和關(guān)鍵詞抽取
這篇文章主要介紹了使用 Node.js 對文本內(nèi)容分詞和關(guān)鍵詞抽取,需要的朋友可以參考下2017-05-05
詳解nodejs express下使用redis管理session
本篇文章主要介紹了詳解nodejs express下使用redis管理session ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04

