English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Недавно занимаюсь созданием собственного инструментального сайта на 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 (при отправке письма замените # на @) для сообщения о нарушении,并提供相关证据. При подтверждении факта нарушения сайт незамедлительно удалят涉嫌侵权的内容。