当前位置: 首页 > 后端技术 > Node.js

nodemon实现Typescript项目热更新

时间:2023-04-04 01:18:22 Node.js

我们都知道在开发环境中可以直接使用nodemon来运行js文件,并且可以在文件发生变化时自动刷新并重启服务器。不过最近刚学typescript,所以想用ts来写,也想达到同样的效果。总结一下方法,大概有以下几种:nodemon+tsc:这个方法很简单。首先将我们的ts文件编译到dist目录下,然后直接通过nodemon运行dist目录下的文件。至于ts的输出目录的配置,可以在tsconfig.js中设置。tsc&&nodemon--watchdist/index.js但是这个方法有一个缺点,就是nodemon只监听dist目录,可能有时候你修改了源码不能触发热更新,还有一个问题就是有一个extradist目录中转,感觉不爽。nodemon+ts-node:命令如下:nodemon-ets,tsx--exects-node./index.ts”大致意思是将ts和tsx文件类型添加到监控文件中,使用ts-node来运行index.ts文件。当然以上参数是在命令行设置的,也可以在nodemon.json中设置:{"verbose":false,"debug":false,"exec":"ts-节点./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":"tstsx","inspect":true}如果使用tsx文件,记得取消tsconfig.json文件中jsx的注释,否则编译时可能会提示错误。除了以上两种方法,今天无意中尝试使用nodemon直接执行ts文件,发现控制台报错。请原谅我糟糕的英语。看不懂我说的是什么,但是看到ts-node的身影,果断安装了。ts-node再次尝试,成功了。nodemon./index.ts但是ts文件这样修改后不会热更新,可以在nodemon.json文件中给ts加上ext属性。{“可重新启动”:“rs”,“忽略”:[].git,“node_modules/**”,“client/*”,“dist”,“.cache”,“日志”],“详细”:true,"execMap":{"":"node","js":"node--harmony"},"events":{"start":"","crash":"","exit":"","restart":""},"ext":"jsjsontstsx","watch":["./**"],"env":{"NODE_ENV":"development","PORT":"3002"},"legacy-watch":false}当然,除了以上方法,你还可以使用构建工具进行处理,比如webpack,parcel等,当然如果你有其他好的建议,欢迎交流。