DEV Community

loading...

Deploy utilizando FTP

mayronceccon profile image Mayron Ceccon ・1 min read

Olá!

Após algum tempo pesquisando uma forma de não precisar utilizar um cliente FTP (modo visual), encontrei o vinyl-ftp.

O vinyl-ftp é um script que abstrai a utilização de um cliente FTP (Filezilla, …).

Iremos utilizar o Gulp para automatizar o processo.

Primeiro é necessário instalar os pacotes gulp, gulp-util, vinyl-ftp:

npm install gulp
npm install gulp-util
npm install vinyl-ftp

Após a instalação, na pasta de seu projeto, crie o arquivo Gulpfile.js com o seguinte conteúdo:

'use strict';

var gulp = require('gulp');
var gutil = require('gulp-util');
var ftp = require('vinyl-ftp');

var user = 'usuarioftp';
var password = 'senhaftp';
var host = 'ftp.site.com.br';
var port = 21;

/*
* Arquivos que serão ou não enviados ao servidor,
* para não enviar um arquivo ou pasta se deve inserir o ! (exclamação) antes do arquivo ou da pasta
*/
var localFilesGlob = ['./**/*',
                        '!node_modules'
                        '!.git'
                        '!composer.*'
                    ];

/*
* Pasta do servidor para onde os arquivos serão enviados
*/
var remoteFolder = '/public_html'

/*
* Função para conexão
*/
function getFtpConnection()
{
    return ftp.create({
        host: host,
        port: port,
        user: user,
        password: password,
        parallel: 5,
        log: gutil.log
    });
}

/*
* Tarefa que enviará os arquivos
*/
gulp.task('ftp-deploy', function()
{
    var conn = getFtpConnection();
    return gulp.src(localFilesGlob, {base: '.', buffer: false})
        .pipe(conn.newer(remoteFolder)) // only upload newer files
        .pipe(conn.dest(remoteFolder));
});

Para executar a tarefa utilize o comando abaixo:

gulp ftp-deploy

Dessa forma o upload dos arquivos irá acontecer. O ftp-deploy identifica quais arquivos foram alterados, assim, ele não envia arquivos não modificados.

Discussion (0)

pic
Editor guide