2013-06-02 21 views
7

Tôi đang cố tự động tải lên tệp .css khi tệp được biên soạn từ Sass. Đây là những gì tôi đã có trong Gruntfile.js tôi:Grunt - Xem tệp và SFTP khi được thay đổi

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']); 

}; 

Nó biên dịch .css nhưng dường như không để tải nó lên. Bất kỳ ý tưởng?

+0

thư mục nào 'config.rb' xuất ra' css' đã biên dịch thành? –

+0

bạn không nên làm điều này tại địa phương và sau đó chỉ đẩy lên khi bạn chạy một bước xây dựng? –

Trả lời

1

Tôi đã cố gắng làm một cái gì đó gần như giống hệt nhau bằng cách sử dụng grunt-sftp và chạy vào các lỗi tương tự. Việc khai thác gỗ không phải là lớn nhất vì vậy tôi đã kết thúc bằng grunt-shell và chỉ chạy scp khi biên dịch:

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

shell: { 
    tumblr: { 
    command: 'scp -P 2222 -r stylesheets "[email protected]:/var/www/foo/directory"' 
    } 
} 

này làm việc như một nét duyên dáng.

2

Tôi muốn xác nhận rằng cấu hình tác vụ grunt-ssh (https://github.com/andrewrjones/grunt-ssh) sau đây đã hoạt động tốt đối với tôi. Lưu ý rằng grunt chấp nhận tùy chọn --verbose có thể giúp gỡ lỗi. Lưu ý rằng từ v0.6.2 tác vụ SFTP grunt-ssh có vẻ không hỗ trợ cú pháp sshconfig, điều này không rõ ràng từ trang trợ giúp.

sftpCredentials: grunt.file.readJSON('sftp-credentials.json'), 
    sftp: { 
     deploy: { 
      files: { 
       "./": "deploy/**" 
      }, 
      options: { 
       "path": "<%= sftpCredentials.path %>", 
       "host": "<%= sftpCredentials.host %>", 
       "username": "<%= sftpCredentials.username %>", 
       "port": "<%= sftpCredentials.port %>", 
       "password": "<%= sftpCredentials.password %>", 
       "srcBasePath": "deploy/", 
       "createDirectories": true 
      } 
     } 
    } 
+0

Với 'grunt-ssh', bạn thiết lập đồng hồ sao cho nó chỉ tải lên các tệp đã thay đổi? – mpen

+0

Tôi tải lên các tệp từ tác vụ grunt được khởi chạy thủ công (tôi sử dụng nó để tải lên các bản dựng mới của tôi vào một thư mục trống mới). Tôi thấy bạn đã tạo ra câu hỏi riêng biệt cho điều đó, hy vọng nó sẽ được trả lời ở đó cuối cùng! :) – sbat

Các vấn đề liên quan