如何同时执行打字稿监视和运行服务器?

时间:2016-02-08 03:06:08

标签: node.js typescript npm command package.json

我在nodejs中开发我的项目。我发现如果我需要代码和测试api,我会运行两个控制台,一个是执行typescript watch,另一个是执行服务器。

我认为这很麻烦。我发现github上的其他开发人员在package.json编写了脚本。调用任何命令都很容易。它吸引了如何编写脚本以及我的开发工作流程。

简而言之,打字稿监视的命令是tsc -w,运行服务器的命令是node app.js。我的想法是将命令合并为tsc -w & node app.js,但我无法同时处理这两个命令。我该怎么办?感谢。

5 个答案:

答案 0 :(得分:5)

  

我的想法是将命令合并为tsc -w&节点app.js但我无法同时处理这两个命令。我该怎么做

您有几个选择。最简单的方法是使用ts-nodehttps://github.com/TypeStrong/ts-node

答案 1 :(得分:3)

TLDR,如果您喜欢nodemon,这是获取文件监视,编译和执行的直接方法:

nodemon --ext ts --exec 'tsc && node dist/index.js'

可以选择用babel替换tsc,以加快编译速度。

这是一个更完整的示例,位于package.json(带有源映射)中:

"scripts": {
  "develop": "nodemon --ext ts --exec 'yarn build --incremental && yarn serve'",
  "build": "tsc",
  "serve": "node --require source-map-support/register dist/index.js",
  ...
},

如果需要,请安装source-map-support作为依赖项,呵呵...源地图支持!否则,从上面的--require source-map-support/register脚本中删除serve

tsconfig.json

{
  "compilerOptions": {
    ...
    "sourceMap": true,
    "outDir": "dist",
  }
}

答案 2 :(得分:1)

只是想把我的帽子扔在这里,这是一个使用 ts-node-devconcurrently 的解决方案,类似于@HerberthObregon 提供的解决方案,但使用 ts-node-dev 而不是 nodemon :

"scripts": {
    "start": "npm run build && concurrently \"npm run build:watch\" \"npm run dev\"",
    "dev": "tsnd --respawn src/main.ts",
    "build": "tsc -p tsconfig.release.json",
    "build:watch": "tsc -w -p tsconfig.release.json"
}

奖励:如果您在计算 tsctsconfig.json 时需要帮助,我会使用此 node typescript starter 中的合理默认值。

答案 3 :(得分:0)

另一个选择是使用nodemon:

tsc -w & nodemon app.js

自Typescript 3.4起,编译速度更快,因为您可以使用incremental compiler option

答案 4 :(得分:0)

步骤1

安装concurrently,使用npmyarn

yarn add concurrently -D   

步骤2

使用此命令创建脚本

"scripts": {
    "run": "tsc && concurrently \"tsc -w\" \"nodemon dist/app.js\"",
}
  

先运行tsc,以便在运行节点时目录具有某些内容

随之,您将运行您的Typescript应用程序?