Fork from ftp-deploy, fix issue #67
my-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.
Version 2.0.0 is an almost complete re-write to use promises and promise-ftp instead of jsftp. The one breaking change is listed in the Usage section.
Installation
npm install --save-dev my-ftp-deploy
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": ,
The most basic usage (stops uploading when an error occurs):
Note: that in version 2 the config file expects a field of user
rather than username
in 1.x.
var FtpDeploy = ;var ftpDeploy = ; var config = user: "user" // NOTE that this was username in 1.x password: "password" // optional, prompted if none given host: "ftp.someserver.com" port: 21 localRoot: __dirname + '/local-folder' remoteRoot: '/public_html/remote-folder/' // include: ['*', '**/*'], // this would upload everything except dot files include: '*.php' 'dist/*' exclude: 'dist/**/*.map' // e.g. exclude sourcemaps deleteRemote: true // delete existing files at destination before uploading // use with promisesftpDeploy // use with callbackftpDeploy;
Configuration
You need to list all file patterns that you want to include for uploading, and the exclude option enables exceptions to the rule
include
: all files that match will be uploaded. Note that a[ ]
matches nothingexclude
: if a file matches the include pattern a subset may nonetheless be excluded
Events
To be notified of what ftpDeploy is doing:
ftpDeploy;ftpDeploy;
To continue uploading files even if a file upload fails (not implemented at present):
ftpDeploy;
Testing
A script to run a simple ftp server (using ftp-srv) is included, together with a test directory.
To use open a console to run the ftp server:
npm run test_server
and then in another console run the tests:
npm test
ToDo
re-enable continueOnError