ftp-deploy
A Node.js package to help with deploying code. Ftp a folder from your local disk to a remote ftp destination. Does not delete from destination directory.
Installation
npm install ftp-deploy
(Need sftp? Check out sftp-upload)
New maintianer
I've taken over from Rick in May 2017, and will start working on the deprecation warnings, and the 'delete remote directory' requests.
Usage
I create a file - e.g. deploy.js - in the root of my source code and add a script to its package.json so that I can npm run deploy
.
"scripts": {
"deploy": "node deploy"
},
The most basic usage (stops uploading when an error occurs):
var FtpDeploy = require('ftp-deploy');
var ftpDeploy = new FtpDeploy();
var config = {
username: "username",
password: "password",
host: "ftp.someserver.com",
port: 21,
localRoot: __dirname + "/local-folder",
remoteRoot: "/public_html/remote-folder/",
include: ['build/version.txt'],
exclude: ['.git', '.idea', 'tmp/*', 'build/*']
}
ftpDeploy.deploy(config, function(err) {
if (err) console.log(err)
else console.log('finished');
});
To be notified of what ftpDeploy is doing:
ftpDeploy.on('uploading', function(data) {
data.totalFileCount;
data.transferredFileCount;
data.percentComplete;
data.filename;
});
ftpDeploy.on('uploaded', function(data) {
console.log(data);
});
To continue uploading files even if a file upload fails:
config.continueOnError = true;
ftpDeploy.deploy(config, function(err) {
if (err) console.log(err)
else console.log('finished');
});
ftpDeploy.on('upload-error', function (data) {
console.log(data.err);
});
Testing
I use proftpd to create a simple ftp server at test/remote and then run the script at node ./test/test
License
MIT