首页 > 解决方案 > Typescript package.json 脚本同时运行构建和启动:端口已在使用中

问题描述

我在使用 nodemon 构建我的打字稿服务器时遇到了一个有趣的问题。我有一个用于构建 ts 文件的脚本,然后启动服务器。但是,当我同时运行这两个时,它一开始很好,然后在构建完成后,它重新启动,但给我一个端口已在使用中的错误。有没有办法在每次启动之前以某种方式杀死端口?

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start:dev": "nodemon dist/index.js",
    "build:dev": "tsc --watch --preserveWatchOutput",
    "dev": "concurrently  \"npm:build:dev\"  \"npm:start:dev\""
  },

我尝试将“npx kill-port 8080 && nodemon dist/index.js”添加到 start:dev,但我仍然收到该错误。我也试过“npx kill-port 8080; nodemon dist/index.js” 这个问题有解决方案吗?谢谢。

编辑:似乎这实际上也像我预期的那样工作,但是由于某种原因,终端仍然显示错误消息,因此,我的服务器记录到控制台的任何内容都被隐藏了。有没有什么办法解决这一问题?谢谢。

标签: node.jstypescript

解决方案


我不确定您究竟为什么会收到端口错误,但您可以改进您的设置。Nodemon可以在ts-node帮助下运行 typescript。

只需安装ts-nodenodemon使用--exec 'ts-node'属性运行。

我的例子package.json

{
    "dev": "nodemon --watch 'src/**/*' -e 'ts' --exec 'ts-node' src/index.ts"
}

推荐阅读