Автоматическое восстановление приложения Vue при изменении файла в рабочем режиме

#node.js #vue.js #nginx #npm

#node.js #vue.js #nginx #npm

Вопрос:

Итак, я создал приложение vuetify. Оно подключено к облаку и должно динамически загружать новые изображения после их загрузки. Изображения будут видны только после запуска контейнера из-за подключения тома. Во время компиляции приложение не видит изображений. И копирование изображений в приложение, а затем компиляция все равно не позволят обновлять новые изображения без остановки контейнера.

В режиме разработки он работает нормально, поскольку он снова компилируется, когда что-то меняется. Я хочу использовать cronjob для запуска скрипта python, который индексирует все изображения в формате json, а затем, если json изменяется, он должен перестроиться.

Мой текущий файл Dockerfile (без вставки python и без cronjob):

 # build environment
FROM node:alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install --silent
RUN npm install -g @vue/cli
COPY . /app
RUN npm run build

# production environment
FROM nginx:stable-alpine as production-stage
COPY --from=build /app/dist /usr/share/nginx/html
COPY prod_nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
  

Теперь, после некоторого исследования, я нашел ‘npm run watch’, но может ли кто-нибудь порекомендовать это и как мне нужно будет создать свой контейнер из-за изменений в ngnix, необходимых для работы маршрутизатора?

Я имею в виду, есть ли какая-либо другая возможность перекомпилировать приложение при изменениях?

Я попытался установить npm / vue в контейнер nginx и вручную перестроить его, скопировать в нужную папку и так далее, Но это беспорядок, и он не хотел загружать изображения (не знаю точной причины, что-то с форматом и правильным загрузчиком, но работает в режиме разработки,так что idk).

Комментарии:

1. Я использую скрипт bash на основе inotifywait для аналогичных целей. Проверить скрипт для отслеживания папки на наличие новых файлов? и как использовать inotifywait для просмотра каталога для создания файлов с определенным расширением threads.

Ответ №1:

Итак, я нашел решение.

У меня есть cronjob, который запускает скрипт python каждую минуту. Этот скрипт просто индексирует каталог и все файлы в нем. Затем у меня есть задание incron, которое запускается при изменении выходных данных скрипта python. Задание incron запускает сборку под управлением npm.