English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Мониторинг изменений файлов с помощью Node.js и загрузка на сервер через SFTP

Недавно занимаюсь созданием собственного инструментального сайта на react+express (на самом деле это захватчик аукциона на Дубаи)

Затем, так как часто приходится вносить изменения, и их нужно тестировать на сервере. Всегда приходится использовать webpack, а затем вручную загружать файлы на сервер, что очень неудобно, поэтому решил написать скрипт, который может обнаруживать изменения файлов и автоматически загружать их.

Сначала мы устанавливаем два модуля,封装 другими людьми.

npm install ssh2-sftp-client
npm install gaze

Первая функция модуля - это загрузка файлов с помощью sftp

Вторая функция модуля - это наблюдение за изменениями файлов. 当然, вы также можете использовать встроенный модуль node fs.

Метод использования этих модулей здесь:ssh2-sftp-client gaze

После установки первым шагом является наблюдение за изменениями файлов, так как мои файлы уже были сконфигурированы с помощью webpack, поэтому в будущем будут только изменения файлов, а не добавление новых файлов, поэтому здесь достаточно использовать 'changed', другие методы смотрите в приведенной ссылке, они очень похожи

gaze(['ваш путь к файлу/*.*','можно также использовать способ наблюдения за несколькими папками с помощью массива /app.js'], function(err, watcher) {
 let watched = this.watched();
 //наблюдение за изменениями файлов
 this.on('changed', (filepath) => {
 //romotePath - это удаленное местоположение моего файла
 let romotePath = '/root' + filepath.substr(15);
 //put - функция загрузки файлов, о ней будет рассказано позже 
 put(filepath,romotePath);
 console.log(filepath + ' был изменен');
 });
}); 

затем начинаем писать нашу функцию загрузки файлов

function put(localPath,romotePath){
 let sftp = new Client();
 sftp.connect({
 хост: 'адрес вашего сервера',
 порт: 'порт, если не изменено, то 22',
 username: 'имя пользователя для подключения',
 password: 'пароль'
 }).then(() => {
 return sftp.put(localPath,romotePath);
 }).then(() =>{
 console.log("Загрузка завершена");
 }).catch((err) => {
 console.log(err, 'catch error');
 });
}

Хорошо, не забудьте, что в начале нашего файла нужно импортировать модули.

let Client = require('ssh2-sftp-client');
let gaze = require('gaze');

Давайте проверим это. Прибытие в нашу папку webpack

Действительно, можно увидеть, что изменения уже внесены и загружены. Загрузка требует времени, пожалуйста, будьте терпеливы.

Прибытие на наш сервер, действительно, последнее время правки уже изменилось на настоящее.

С этого момента я больше не должен загружать их по одному. При необходимости edits. Откройте окно для выполнения этого скрипта, и вы можете с удовольствием кодировать.

Названное выше - это то, что я хочу представить вам, как использовать nodejs для мониторинга изменений в файлах и их загрузки на сервер с помощью sftp, надеюсь, это поможет вам. Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, я постараюсь ответить вам своевременно. В этом отношении также хочу выразить признательность всем, кто поддерживает сайт呐喊 руководств!

Заявление: содержание этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, материалы предоставлены пользователями Интернета в порядке самодеятельности, сайт не обладает правами собственности, не прошел редактирование的人工处理, не несет ответственности за соответствующие правовые вопросы. Если вы обнаружите материалы,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @) для сообщения о нарушении,并提供相关证据. При подтверждении факта нарушения сайт незамедлительно удалят涉嫌侵权的内容。

Давай полюбим