English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Recentemente estou usando react+express para criar um site de ferramentas próprias (na verdade é um rastreador de leilões de bônus)
E como são frequentes as mudanças, e precisamos testá-las no servidor. Sempre temos que usar webpack e manualmente upload os arquivos, o que é uma tarefa tediosa, então decidi pesquisar e escrever um script que detecta as mudanças do arquivo e faz o upload automaticamente.
Primeiro, usamos npm para instalar dois módulos encapsulados por outros.
npm install ssh2-sftp-client npm install gaze
O primeiro módulo é usado para upload de arquivos sftp
O segundo módulo é usado para escutar as mudanças do arquivo. Claro, você também pode usar o módulo fs do node.
o uso desses módulos está aqui:ssh2-sftp-client gaze
Depois de instalar, o primeiro passo é escutar as mudanças do arquivo. Devido ao meu arquivo já estar construído com webpack, não haverá adição de arquivos apenas mudanças, então aqui é necessário usar 'changed', outras formas de uso, consulte o link acima, são semelhantes
gaze(['seu caminho do arquivo/*.*','e também pode usar a forma de array para escutar várias pastas/app.js], function(err, watcher) { let watched = this.watched(); //escutar as mudanças do arquivo this.on('changed', (filepath) => { //romotePath é a posição remota do meu arquivo let romotePath = '"/root' + filepath.substr(15; //put é a função de upload de arquivo, será explicado mais à frente put(filepath,romotePath); console.log(filepath + foi alterado'); }); });
então começa a escrever nossa função de upload de arquivo
function put(localPath,romotePath){ let sftp = new Client(); sftp.connect({ host: 'seu endereço do servidor', port: 'porta, se não foi alterada, é]}22', username: 'nome do usuário de conexão', password: 'senha' }).then(() => { return sftp.put(localPath,romotePath); }).then(() =>{ console.log("Upload concluído"); }).catch((err) => { console.log(err, 'catch error'); }); }
Bem, não se esqueça de importar o módulo no início do nosso arquivo.
let Client = require('ssh2-sftp-client'); let gaze = require('gaze');
Vamos experimentar a seguir. Vamos à nossa pasta webpack.
De fato, podemos ver que a modificação e o upload foram concluídos. O upload leva tempo, por favor, tenham paciência.
Vamos ao nosso servidor, de fato, a data de modificação recente já foi alterada para agora.
A partir de agora, finalmente não preciso fazer upload um por um. Basta abrir uma janela para este script para modificar diretamente. coding feliz!
A seguir, o editor apresenta a todos os amigos como monitorar as mudanças de arquivos usando nodejs e fazer upload para o servidor via sftp, esperando que ajude a todos. Se tiverem alguma dúvida, por favor, deixem um comentário, o editor responderá a todos o mais rápido possível. Muito obrigado pelo apoio ao site Tutorial Yell!
Declaração: O conteúdo deste artigo é proveniente da Internet, pertence ao respectivo proprietário e foi submetido e carregado pelos usuários da Internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal. Se encontrar conteúdo suspeito de direitos autorais, bem-vindo a enviar e-mail para: notice#w3Aviso: Ao denunciar via e-mail, substitua # por @ e forneça provas relacionadas. Acontecendo a verificação, o site deletará imediatamente o conteúdo suspeito de infringir direitos autorais. Se encontrar conteúdo com direitos autorais, por favor, envie um e-mail para: notice#w