上一篇讲完搭建Typescritp版的Koa框架后,F5运行服务端,页面进行正常显示服务。

今天要分享的是,如果要修改服务端代码,如果让编译服务自动重启,免去手动结束服务再重启的过程。

自动重启服务需要使用nodemon工具。nodemon可以自动检测到目录中的文件更改时,通过重新启动应用程序来调试基于node.js的应用程序。

1. 全局安装nodemon

npm i nodemon -g

2. 配置引导文件lunch.json,修改为如下代码

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [{
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "preLaunchTask": "typescript",
        "protocol": "inspector",
        "program": "${workspaceFolder}/index.ts",
        "outFiles": [
            "${workspaceFolder}/bin/*.js"
        ],
        "runtimeExecutable": "npm",
        "runtimeArgs": [
            "run",
            "debug"
        ],
        "port": 5858,
        "env": {
            "NODE_ENV": "dev"
        },
        "restart": true,
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
    }]
}

3. 修改package.json的scripts,如下:

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [{
"label": "typescript",
"type": "typescript",
"tsconfig": "tsconfig.json",
"isBackground": true,
"problemMatcher": "$tsc-watch",
"option": "watch"
}]
}

4. 修改task.json,如下:

 "scripts": {
"start": "node ./bin/index.js",
"debug": "nodemon --watch ./bin --inspect=0.0.0.0:5858 --nolazy ./bin/index.js",
"build": "npm run build-ts",
"build-ts": "tsc",
"watch": "npm run watch-ts",
"watch-ts": "tsc -w"
}

5. F5运行调试,控制台显示如下:

6. index.ts如上篇文章内容不变,打开浏览器,输入地址:localhost:3000,显示效果如下:

const Koa = require('koa');
const app = new Koa(); app.use(async (ctx: any) => {
ctx.body = 'Hello World';
}); console.log('app server start on port 3000...')
app.listen(3000);

7. 修改index.ts代码,如下:(仅修改:ctx.body = 'Hello World...Hello LaoLv';)

const Koa = require('koa');
const app = new Koa(); app.use(async (ctx: any) => {
ctx.body = 'Hello World...Hello LaoLv';
}); console.log('app server start on port 3000...')
app.listen(3000);

8. 保存index.ts,此时控制台自动编译输出内容:

9. 打开浏览器,刷新,自动更改为修改后的结果,效果如下:

到此,后端调试,自动编译重启服务的功能完成。

可能F5后vs code会弹出下面问题:Cannot connect to runtime process,timeout after 10000 ms -......

解决办法就是,launch.json中,一定要加上:"port": 5858,因为此处的port要与package.json中scripts-->debug中的 --inspect 0.0.0.0:5858的端口一致。

老吕教程--02后端KOA2框架自动重启编译服务(nodemon)的更多相关文章

  1. 老吕教程--01后端Node.js框架搭建(安装调试KOA2)

    今天开始从零搭建后端框架,后端框架基于Koa2,通过Typescript语言编写. 在写后端框架之前,自己也了解过Express,感觉Koa2更加灵活,由于有多年后端研发经验,所以采用Koa2,简单敏 ...

  2. Confluence 6 Windows 中以服务方式自动重启为服务手动安装 Confluence 分发包

    在 Windows: 打开一个命令输入框,然后修改目录到 <CONFLUENCE-INSTALL>/bin 目录中.你需要以管理员权限运行这个命令行输入框(Run as administr ...

  3. Shell脚本自动重启Java服务

    话不多说直接上代码: cd /home/javaProduct/if [ -d '/home/javaProduct/lib_new/' ]; thenecho 'Has New Lib!'echo ...

  4. 自动重启sqlserver服务

    公司一台官网服务器是由.net语言sqlserver数据库开发的,官网后台登录要涉及到sql数据库,现在出了一个问题,每天登录后台都会报错,要重启sqlserver才能进入,问题一直也没有解决,但是也 ...

  5. 不通用版(从SVN取版本,通过MAVEN生成JAVA包,通过SALTSTACK传送到远程服务器并自动重启TOMCAT服务)PYTHON代码

    从昨晚写到今天啊, 第一版测试成功了. PHP和JAVA的更新相对来说,PHP的自动化更新是简单多啦~~ 当然,这只是运维工作当中的一环~~ #!/usr/bin/env python # -*- c ...

  6. 解决Android后台清理APP后,程序自动重启的问题

    最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序会再次重启,而有的手机(小米)则不会.猜想可能是小米手机内部做了处理, ...

  7. 如何让Service自动重启而不被kill掉

    重写service的onStartCommand方法. @Override    public int onStartCommand(Intent intent, int flags, int sta ...

  8. 【转】Android Service被关闭后自动重启,解决被异常kill 服务

    http://www.kaifajie.cn/android/10182-2.html 每次调用startService(Intent)的时候,都会调用该Service对象的onStartComman ...

  9. PHPWAMP自启异常,服务器重启后Apache等服务不会自动重启的原因分析

    在使用“PHPWAMP自动任务”时,不少学生遇到如下问题: “phpwamp绿色集成环境重启动电脑(服务器)后,不会自动启动网站服务” (如果是其他环境或是自己搭建时遇到此问题,也是可以用此法解决) ...

随机推荐

  1. 编程C语言进阶篇——自定义数据类型:共同体

    什么是"自定义数据类型"?顾名思义,就是用户可以随时在程序中自行定义新的数据类型.自定义数据类型时需要设置数据类型的名称及其成员.数据类型成员各属性的设置方法等同于变量设置时相应属 ...

  2. activiti数据表介绍

    activiti6.0数据库介绍 Acitiviti6.0数据库中一共有28张表,表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识. 用于自我学习记录,后期不定期更新~~~ 数据库描述 ...

  3. fastjson JSONObject简单使用

    工作中用的蛮多的最近整理下,概括地说 通过这个工具可以让一个json在json串,JSONObject,java对象之间进行转化 首先我们先写2个bean来构成一个比较复杂的json串: public ...

  4. Java面试专题-基础篇(1)

  5. 数据库事务ACID/隔离级别

    参考博客 1. 事务的定义 事务是用户定义的一个数据库操作序列.这些操作要么全执行,要么全不执行,是一个不可分割的工作单元.在关系型数据库中,事务可以是一条SQL语句,也可以是一组SQL语句或整个程序 ...

  6. 区块链学习7:超级账本项目Hyperledger与Fabric以及二者的关系

    ☞ ░ 前往老猿Python博文目录 ░ 一.超级账本(hyperledger) 超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,成员包括 ...

  7. Python中判断字符串是否为数字的三个方法isdecimal 、isdigit、isnumeric的差别

    isdecimal .isdigit.isnumeric这三个字符串方法都用于判断字符串是否为数字,为什么用三个方法呢?他们的差别是什么内? isdecimal:是否为十进制数字符,包括Unicode ...

  8. PyQt学习随笔:QTableWidget的visualRow、visualColumn、logicalRow、logicalColumn(可见行、逻辑行、可见列、逻辑列)相关概念及方法探究

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概念 关于逻辑行logicalRow.列logicalColumn和可见行visualRow.列 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的orientation属性

    在Designer的spacers部件中有2个部件,分别是Horizontal Spacer和Vertical Spacer,这两个部件都有orientation属性,表示Spacer部件的方向. 如 ...

  10. dm8数据库的安装 for linux

    目录 dm8数据库的安装 for linux 1.创建用户 2.修改limit的文件 3.解压文件安装包 4.挂载iso镜像 5.对于安装介质和目录进行权限授予 6.切换用户安装数据库软件 7.dm数 ...