我们都知道nodemon可以直接用来在开发环境下运行js文件,可以在文件改变时自动刷新和重启服务器。但是最近刚好在学typescript,所以就想使用ts来写,也想达到同样的效果,总结一下方法,大概有如下几种:

nodemon+tsc:

这个方法很简单,首先通过tsc将我们的ts文件编译到dist目录下,然后再通过nodemon直接运行dist目录下的文件即可。至于ts的输出目录相关配置可在tsconfig.js中设置。

tsc && nodemon --watch dist/index.js

但是这种方式有个缺点,就是nodemon只监听了dist目录,可能有时候你修改了源码并不能触发热更新,另外还有个问题就是多了一个dist目录中转,感觉不爽。

nodemon+ts-node:

命令如下:

nodemon -e ts,tsx --exec ts-node ./index.ts"

大概意思就是监听文件增加ts、tsx两种文件类型,使用ts-node运行index.ts文件。

当然,上述参数是设置在命令行中的,也可以在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来执行ts文件,发现控制台报错了,原谅我是个英语渣,不明白具体说了什么,但是看到了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等,当然如果大家有其他好的建议,欢迎交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?