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

时间:2017-03-21 21:13:07

标签: node.js typescript docker nodemon

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

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

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

它应检测 ts 更改并重新编译,但不是。

它正在通过与卷链接的docker容器运行,应该监视卷中的代码。

搬运工-撰写

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文件的变化。

任何意见?

1 个答案:

答案 0 :(得分:7)

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

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