Grunt - 在更改时观察文件和SFTP

Pau*_*son 7 sftp sass watch gruntjs

我正在尝试自动上传.css文件,当它是从Sass编译的时候.这就是我的意思Gruntfile.js:

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    watch: {
      coffee: {
        files: ['**/*.coffee'],
        tasks: ['coffee']
      },
      scripts: {
        files: ['**/*.scss'],
        tasks: ['compass']
      },
      sftp: {
        files: ['**/*.css'],
        tasks: ['sftp-deploy']
      }
    },
    coffee: {
      compile: {
        files: {
          'testing.js': 'testing.coffee'
        }
      }
    },
    compass: {
      dist: {
        options: {
          config: 'config.rb'
        }
      }
    },

    'sftp-deploy': {
      build: {
        auth: {
          host: 'example.com',
          port: 22,
          authKey: 'key2'
        },
        src: 'styles/',
        dest: 'styles/',
        exclusions: ['**/.DS_Store'],
        server_sep: '/'
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-compass');
  grunt.loadNpmTasks('grunt-sftp-deploy');


  // Default task(s).
  grunt.registerTask('default', ['watch']);

};
Run Code Online (Sandbox Code Playgroud)

它编译.css但似乎没有上传它.有任何想法吗?

imj*_*red 1

我试图使用 grunt-sftp 做一些几乎相同的事情,但遇到了类似的错误。日志记录不是最好的,所以我最终使用grunt-shellscp在编译时运行:

watch: {
    tumblr: {
        files:['sass/*.scss', 'sass/*/*.scss'],
        tasks: [ 'compass:tumblr', 'shell:tumblr' ]
    }
},

shell: {
  tumblr: {
    command: 'scp -P 2222 -r stylesheets "myname@myserver.com:/var/www/foo/directory"'
  }
}
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力。