grunt-diff-deploy

Deploy a folder using FTP. It uploads differences only. It can handle server generated files mixed with the uploaded ones.

grunt-diff-deploy

Deploy a folder using FTP. It uploads differences only. It can handle server generated files mixed with the uploaded ones.

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-diff-deploy --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-diff-deploy');

In your project's Gruntfile, add a section named diff_deploy to the data object passed into grunt.initConfig().

grunt.initConfig({
  diff_deploy: {
    options: {
      // Task-specific options go here. 
    },
    your_target: {
      // Target-specific file lists and/or options go here. 
    },
  },
})

Type: String Default value: localhost

Host to connect to.

Type: String Default value: .

Paths of the remoted files will be generated from the relative path to this base folder in the local computer.

For example, if the full path it's /home/user/myfolder/mysubfolder/myfile and options.base is pointing to /home/user/myfolder; the file will be uploaded to {{options.remoteBase}}/mysubfolder/myfile in the server.

Type: String Default value: .

If you want to upload files to a subdirectory of the remote computer, specify the path here.

The most common usage of this task: uploading to a host the contents of a folder called deploy, building the routes taking deploy as the base path.

grunt.initConfig({
  diff_deploy: {
    options: {
      host: 'example.com',
      base: 'deploy',
    },
    files: [
      {
        src: ['**', '**/.*'],
        cwd: 'deploy',
        expand: true,
      },
    ],
  },
})

Same as before, but uploading all files to a subfolder of the host.

grunt.initConfig({
  diff_deploy: {
    options: {
      host: 'example.com',
      base: 'deploy',
      remoteBase: 'mysubfolder1/mysubfolder2',
    },
    files: [
      {
        src: ['**', '**/.*'],
        cwd: 'deploy',
        expand: true,
      },
    ],
  },
})

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

  • 2013-11-21 v0.1.0 Release initial push task.