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.
Top comments (0)