DEV Community

Mayron Ceccon
Mayron Ceccon

Posted on

2

Deploy utilizando FTP

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.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay