Как скопировать папку сборки на удаленный сервер с помощью gulp

Я новичок в инструменте сборки Gulp. Недавно я начал использовать Gulp в своем проекте. Я правильно выполнил следующие действия: минимизировал, сжал, файл jsx в файл js. Но мое требование - отправить папку сборки на мой удаленный сервер, который находится по адресу другое место. Для этого я использую gulp-scp npm для копирования папки на удаленный сервер, но не копирую папку на сервер. Ниже приведен код gulpfile.js.

var gulp   = require('gulp'),
    scp    = require('gulp-scp2');
gulp.task('default', function() {
  return gulp.src('src/*.js')
  .pipe(scp({
    host: '192.50.10.31',
    username: 'applmgr',
    password:'123456',
    dest: '/Data/project'
  }))
  .on('error', function(err) {
    console.log(err);
  });
});

В этом коде я копирую все файлы проекта js в папку данных удаленного сервера. Я запускаю свой gulpfile, js

c:\gulpproject>глоток

[10:19:36] Использование gulpfile c:\gulpproject\gulpfile.js

[10:19:36] Запуск "по умолчанию"...

приходит так и не показывает ничего, может мне помочь, почему это происходит так и в каком месте мой код неверен


person RamRajVasavi    schedule 24.04.2015    source источник


Ответы (2)


Хорошо, я решил эту проблему с помощью плагина gulp-rsync npm. Но в Windows вы хотите скопировать файл из локальной системы в удаленную, для этого ваша система поддерживает rsync, а также содержит команду ssh. Я попробовал это в Linux и установил rsync.

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var react = require('gulp-react');
var rsync = require('gulp-rsync');


gulp.task('scripts', function() {
  // Minify and copy all JavaScript (except vendor scripts) 
  // with sourcemaps all the way down 
  return gulp.src("src/*.jsx")
    .pipe(react())
    .pipe(uglify())
    .pipe(gulp.dest('build/js'));
});
gulp.task('deploy',['scripts'], function() {
  gulp.src('build/**')
    .pipe(rsync({
      root: 'build',
      hostname: '[email protected]',
      destination: '/Data/rrv'
    }));
 gulp.src('build/**')
    .pipe(rsync({
      root: 'build',
      hostname: '[email protected]',
      destination: '/Data/rrv'
    }));
   });


// The default task (called when you run `gulp` from cli) 
gulp.task('default', ['deploy']);
person RamRajVasavi    schedule 04.05.2015

вы можете использовать powershell, cmd или batch:

var spawn = require("child_process").spawn,child;
child = spawn("powershell.exe",["c:\\temp\\helloworld.ps1"]);
child.stdout.on("data",function(data){
    console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
    console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
    console.log("Powershell Script finished");
});
child.stdin.end(); //end input
person Yusuf Mohammad    schedule 22.12.2019
comment
Привет asd-word1200. Пожалуйста, рассмотрите возможность добавления дополнительной информации. - person Tiago Martins Peres 李大仁; 22.12.2019