>웹 프론트엔드 >JS 튜토리얼 >nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드

nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드

高洛峰
高洛峰원래의
2017-02-20 16:52:462024검색

이 글에서는 nodejs를 이용해 파일 변경 사항을 모니터링하고 sftp를 이용해 서버에 업로드하는 방법을 주로 소개합니다. 매우 좋고 참고할만한 가치가 있습니다.

저는 최근에 리액트+익스프레스를 사용해서 저만의 도구 웹사이트(실제로는 보물찾기 섬도미)

그럼 자주 변경해야 하기 때문에 테스트용으로 서버에도 올려야 합니다. 항상 webpack을 이용해서 파일을 수동으로 업로드해야 하는데 너무 귀찮아서 그냥 검색해서 파일 변경을 감지하고 자동으로 업로드할 수 있는 스크립트를 작성했습니다.

먼저 npm을 사용하여 다른 사람이 패키지한 두 개의 모듈을 설치합니다.


npm install ssh2-sftp-client
npm install gaze


첫 번째 모듈은 sftp를 통해 파일을 업로드하는 데 사용되며,

두 번째 모듈은 파일이 변경되었습니다. 물론 node.js와 함께 제공되는 fs 모듈을 사용할 수도 있습니다.

이 두 모듈의 사용법은 다음과 같습니다: ssh2-sftp-client Gaze

제 파일은 webpack을 사용하여 구축되었으므로 설치 후 첫 번째 단계는 파일 변경 사항을 모니터링하는 것입니다. 파일 변경만 있을 뿐 파일이 추가되지 않으므로 여기서만 변경을 사용하면 됩니다. 다른 사용법은 위의 링크를 참조하세요. 모두 비슷합니다


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 + ' was changed');
 });
});


그런 다음 파일을 업로드하는 함수 작성을 시작하세요.


function put(localPath,romotePath){
 let sftp = new Client();
 sftp.connect({
 host: '你的服务器地址',
 port: '端口,没改过的话是22',
 username: '连接的用户名',
 password: '密码'
 }).then(() => {
 return sftp.put(localPath,romotePath);
 }).then(() =>{
 console.log("上传完成");
 }).catch((err) => {
 console.log(err, 'catch error');
 });
}


알겠습니다. 하지 마세요. 파일 시작 부분에서 모듈을 가져오는 것을 잊었습니다.


아아아아


다음 실험을 해보자. webpack 폴더

nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드

로 이동하면 수정되어 업로드된 것을 확인할 수 있습니다. 업로드하는 데 시간이 걸리므로 잠시 기다려 주세요.

nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드

저희 서버에 오셨는데, 역시 최신 수정시간이 지금이 되었습니다.

이제부터는 하나하나 올리지 않아도 되겠네요. 직접 수정하고 싶을 때마다. 창을 열어 이 스크립트를 시작하면 즐겁게 코딩할 수 있습니다.

위는 편집자가 소개한 내용입니다. nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드하는 것이 도움이 되기를 바랍니다. 메시지를 보내면 편집자가 제 시간에 답변해 드릴 것입니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

nodejs를 사용하여 파일 변경 사항을 모니터링하고 sftp를 사용하여 서버에 업로드하는 관련 기사를 더 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.