无法让 TypeScript 监视我的项目和 nodemon 重新加载它

Posted

技术标签:

【中文标题】无法让 TypeScript 监视我的项目和 nodemon 重新加载它【英文标题】:Unable to get TypeScript watching my project and nodemon reloading it 【发布时间】: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

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

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

Is there a way to use npm scripts to run tsc -watch && nodemon --watch?

【问题讨论】:

另一组可能的答案:***.com/questions/41853422/… 【参考方案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

【讨论】:

以上是关于无法让 TypeScript 监视我的项目和 nodemon 重新加载它的主要内容,如果未能解决你的问题,请参考以下文章

使用 VSCODE 进行调试无法在 Webpack + Typescript + 无框架中工作

Typescript、Airbnb 和 eslint 导入/无外部依赖项(带别名)

无法初始化监视插件“node_modules/jest-watch-typeahead/filename.js”:

Typescript eslint 禁用 no-unused-vars

排除在TypeScript中监视目录

nodemon 没有在 webpack-typescript-node.js 中监视目录?