使用打字稿时nodemon不刷新 [英] nodemon not refreshing when using typescript

查看:57
本文介绍了使用打字稿时nodemon不刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 NodeJs、express、typescript 和 nodemon 开发一个应用程序.

I'm working on an app with NodeJs, express, typescript and nodemon.

但是当我更改 ts 文件中的某些代码时,页面没有刷新.

But the page is not refreshed when I changed some code in the ts files.

如何在js中编译ts文件并使用nodemon(或其他工具)刷新浏览器?

How can I do to compile the ts file in js and refresh the browser with nodemon (or other tool)?

package.json

package.json

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.17.2",
    "debug": "^2.6.8",
    "dotenv": "^2.0.0",
    "express": "^4.15.3",
    "iconv-lite": "^0.4.17",
    "inversify": "^4.11.1",
    "jsonwebtoken": "^7.4.1",
    "mongoose": "^5.0.10",
    "morgan": "^1.8.2",
    "passport": "^0.3.2",
    "passport-jwt": "^2.2.1",
    "rxjs": "^5.4.2",
    "typescript": "^2.7.2",
    "winston": "^2.3.1"
  },
  "devDependencies": {
    "@types/chai": "^4.0.0",
    "@types/debug": "0.0.29",
    "@types/dotenv": "^2.0.20",
    "@types/express": "^4.0.35",
    "@types/mocha": "^2.2.41",
    "@types/mongoose": "^4.7.15",
    "@types/morgan": "^1.7.32",
    "@types/node": "^6.0.77",
    "@types/passport": "^0.3.3",
    "@types/passport-jwt": "^2.0.20",
    "chai": "^4.0.2",
    "chai-http": "^3.0.0",
    "gulp": "^3.9.1",
    "gulp-clean": "^0.3.2",
    "gulp-typescript": "^3.1.7",
    "gulp-yaml": "^1.0.1",
    "mocha": "^3.4.2",
    "mocha-typescript": "^1.1.4"
  },
  "scripts": {
    "start": "gulp build && nodemon dist/index.js",
    "build": "gulp build",
    "test": "gulp build && mocha -t 30000 dist/**/*.test.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/devslaw/TypeScript-Node.js-REST-example.git"
  },
  "keywords": [],
  "author": "Arthur Arakelyan <arthur@devslaw.com>",
  "license": "ISC",
  "homepage": "https://github.com/devslaw/TypeScript-Node.js-REST-example#readme"
}

所以知道,无论何时我进行更改,我都需要停止服务器并再次运行 npm start

So know, anytime i make a change, I need to stop the server and run npm start again

推荐答案

问题在于您的启动脚本正在观看 dist/index.js.此文件夹仅在代码重新编译为纯 JavaScript 时才会更改.因此,您需要改为观看 TypeScript 文件.最棒的是您可以更改 nodemon 的默认行为.您还需要将 ts-node 添加到您的 package.json 中.

The problem lies in the fact that your start script is watching dist/index.js. This folder only changes when the code gets recompiled into plain JavaScript. So you will need to watch the TypeScript files instead. The great thing is that you can change nodemon's default behavior. You will need to add ts-node to your package.json as well.

尝试将脚本设置为如下所示:

Try setting the script to something like the following:

nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts

然后,您还需要使用以下内容设置 nodemon.json 文件:

You will then want to set up a nodemon.json file with the following also:

{
  "watch": ["src"],
  "ext": "ts",
  "exec": "ts-node ./src/index.ts"
}

这篇关于使用打字稿时nodemon不刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆