打字稿更改后nodemon没有重新启动

Posted

技术标签:

【中文标题】打字稿更改后nodemon没有重新启动【英文标题】:nodemon not restarting after typescript change 【发布时间】:2017-08-13 18:35:30 【问题描述】:

打字稿文件更改后,我的 nodemon 没有重新启动。

目前我正在使用以下内容来运行和编译我的更改:

"dev": "nodemon -e ts,json --exec \"npm run compile\"",
"compile": "tsc && node src/index.js"

它应该检测到 ts 的变化并重新编译,但事实并非如此。

它是通过一个与卷链接的 docker 容器运行的,需要注意卷中的代码。

docker-compose

version: '2'
services:
  api:
    build:
      context: ./api
    ports: ["5000:5000"]
    environment:
      - NODE_ENV=production 

覆盖:

version: '2'
services:
  api:
    command: yarn run dev
    volumes:
      - ./api/src:/usr/workspace/api/src      
    environment:      
      - NODE_ENV=dev   

该api有以下dockerfile

FROM node:latest

# Install yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
  && echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list  && apt-get update && apt-get clean

# Set working dir and copy contents of our images to that dir  
RUN mkdir -p /usr/workspace/api && cd /usr/workspace/api

# install dependencies
COPY *.json /usr/workspace/api/
WORKDIR /usr/workspace/api

# npm install will check NODE_ENV if its production if will not install dev dependencies
RUN npm install --silent && npm install -g nodemon pm2 typescript --silent

# copy sources
COPY ./src ./src

# create env file with the port
ENV PORT 8100
EXPOSE $PORT

CMD ["pm2-docker", "src/process.json"]

如您所见,通过覆盖,我运行开发环境而不是暂存

我已尝试在 tsconfig 中将 watch 选项设置为 true,但是代码不会重新运行。当我更改 nodemon 选项以查看 js 文件时,它也可以正常工作,但是它会不断重建,因为它会在编译时检测到 js 文件更改。

有什么意见吗?

【问题讨论】:

您能否发布更多信息,例如您正在使用的docker run,以及卷挂载。拥有dockerfile 的内容并知道CMD 和/或ENTRYPOINT 是什么也会有所帮助 谢谢你的评论,我已经更新了我原来的帖子,提供了更多细节 【参考方案1】:

我已通过将 -L 开关添加到 nodemon 来解决此问题。这显然使用了在 docker 容器上工作的遗留手表

"dev": "nodemon -L -e ts,json --exec \"npm run compile\"",

【讨论】:

仅供参考,对我来说,添加-e ts就足够了。 感谢您的关注。我确实选择了包含 json(或其他文件),因为当我编辑它们时它对我的配置文件很有用 对——抱歉,我不清楚。由于某些原因,只需添加带有相关选项的-e(对我来说,只是 ts)就可以让我的 nodemon 重新启动。它正在检测没有-e 的更改,但是当我添加它时,重新启动开始发生。我想我误解了 nodemod 会在没有选项的情况下重新启动任何更改 - 看起来我必须明确告诉它我感兴趣的内容。 顺便说一句,您的回答说您添加了 -L 开关,但它没有在您的代码 sn-p 中显示。 发现不错,谢谢,已调整!

以上是关于打字稿更改后nodemon没有重新启动的主要内容,如果未能解决你的问题,请参考以下文章

Nodemon卡在“由于更改而重新启动......”并且不会重新启动服务器

Nodemon - 安装期间“干净退出 - 等待重新启动前的更改”

是否可以在前端更改时运行 nodemon 以重新启动服务器?

更改文件时如何使用 nodemon 在 npm 脚本上重新启动多个服务器文件

使用打字稿时nodemon不刷新

nodemon 正在运行但没有输出?