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

23 浏览
0 Comments

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

命令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这两种常见方法测试了这两种策略。

相关问题(已验收的答案未解决问题):

0
0 Comments

问题出现的原因是没有正确配置nodemon来监视项目并重新加载。解决方法是在nodemon.json文件中添加一个延迟参数(delay)来延迟重新加载的时间。

具体的解决方法如下:

1. 在项目根目录下创建一个名为nodemon.json的文件。

2. 在nodemon.json文件中添加以下内容:

{

"watch": ["build"],

"ext": "js",

"exec": "npm start",

"delay": 1000

}

3. 在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"

}

}

4. 在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/**/*"

]

}

5. 运行命令`npm run code`。

0