ftp-hotsync
Watch for file changes in a local directory and push the changed files on to a FTP server. Unlike similar NPM packages (ftpsync, grunt-ftp-sync) this one isn't based on a file comparison and is not suitable as deployement tool. The purpose is to reflect developers files on the server immediately so it can be used as a substitute to local development setup (WAMP, XAMPP, ...).
Use
Preview development changes on the server immediately
Installation
The prerequisite is to have Node.js. Install the sync tool as a development dependency
npm install ftp-hotsync --save-dev
Specify which files are supposed to be pushed to the FTP server. A JSON file ftp-hotsync.json should contain following information:
{
"host": "ftp.untitled.com",
"remotePath": "/www/test",
"localPath": "dist",
"username": "untitled.com",
"password": "**********",
"notify": true,
"notifySound": true
}
Parameter | Description | Example |
---|
host | FTP host name | ftp.untitled.com |
username | account name used for logging in | untitled.com |
password | password for the account in a plain text | $ens1tive1nfo |
remotePath | Where to put the files on the FTP. Note this needs to be absolute path so you need to first find out what directory structure is provided by the server | /www/mytest |
localPath | Directory (sub-directory) to watch for changes. Usually this is provided as a relative path to package.json. | dist |
notify | Use native OS notification center to announce transfers. | false |
notifySound | Play sound along the native notification. Only works when notify feature is on and might not be available on MacOs. | false |
Add hotsync snippet to your scripts in package.json file:
"scripts": {
"hotsync": "ftp-hotsync"
...
}
To start watching local file changes:
npm run hotsync
Disclaimer
Ftp-sync will not remove any files from the FTP server however it can have undesired effect when not configured properly. You are responsible for any data lost as well for ensuring the FTP configuration file is safe from public repositories.