打字稿更改后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 以重新启动服务器?