var FtpDeploy = require("ftp-deploy"); var ftpDeploy = new FtpDeploy(); var config = { user: "user", // Password optional, prompted if none given password: "password", host: "ftp.someserver.com", port: 21, localRoot: __dirname + "/dist", remoteRoot: "/public_html/remote-folder/", include: ["*", "**/*", ".htaccess"], // this would upload everything except dot files // e.g. exclude sourcemaps, and ALL files in node_modules (including dot files) exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"], // delete ALL existing files at destination before uploading, if true deleteRemote: true, // Passive mode is forced (EPSV command is not sent) forcePasv: true }; // use with promises ftpDeploy .deploy(config) .then(res => console.log("finished:", res)) .catch(err => console.log(err)); ftpDeploy.on("uploading", function(data) { console.log(data.filename); // partial path with filename being uploaded });