【问题标题】:Unable to get TypeScript watching my project and nodemon reloading it无法让 TypeScript 监视我的项目和 nodemon 重新加载它
【发布时间】:2018-11-29 16:06:07
【问题描述】:

命令tsc -w -p server 观察server 目录将TypeScript 编译到dist/server 文件夹中(dist/server/app.js 是主要的Node 脚本)。

命令nodemon -w dist/server dist/server/app.js 监视dist/server 文件夹并在发生变化时重新加载dist/server/app.js

问题:如果我同时运行两个命令tsc 将需要一些时间,但nodemon 启动太快,而dist/server/app.js 尚不存在。

concurrently \"tsc -w -p server\" \"nodemon -w dist/server dist/server/app.js\"

另一方面,如果我按顺序运行命令,我会丢失nodemon 输出(即服务器输出),因为tsc 会监视更改并“窃取”控制台输出:

tsc -w -p server\ && nodemon -w dist/server dist/server/app.js

我已经使用nodemonnpm-run-all 测试了这两种策略,这是一种流行的替代方案。

相关问题(接受的答案并不能解决问题):

【问题讨论】:

标签: node.js typescript nodemon


【解决方案1】:

nodemon 添加 1000 毫秒的延迟解决了我的问题。

https://github.com/remy/nodemon#delaying-restarting

nodemon.json

{
  "watch": ["build"],
  "ext": "js",
  "exec": "npm start",
  "delay": 1000
}

package.json

{
  "name": "demo",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node build/index.js",
    "ts": "tsc -w",
    "nodemon": "nodemon",
    "code": "concurrently -n ts,nodemon npm:ts npm:nodemon"
  },
  "devDependencies": {
    "concurrently": "^4.1.0",
    "nodemon": "^1.18.9",
    "typescript": "^3.2.2"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es2017",
    "noImplicitAny": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "build",
    "baseUrl": ".",
    "paths": {
      "*": [
        "node_modules/*",
        "src/types/*"
      ]
    }
  },
  "include": [
    "src/**/*"
  ]
}

npm run code

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 1970-01-01
    • 2021-04-19
    • 2012-07-25
    • 2016-05-07
    • 2019-12-24
    • 2018-07-11
    • 2014-09-07
    • 2015-04-14
    相关资源
    最近更新 更多