有没有好的grunt ftp插件?

时间:2014-01-02 08:21:47

标签: deployment ftp gruntjs

我已尝试grunt-ftpushgrunt-ftp-deploy,但两者都无法正常使用。我遇到了烦人的烦恼。 FTP任务看起来非常重要,我不能谷歌工作,这很奇怪。

已更新

以下是grunt-ftp的设置

ftp: { 
  options: { 
    host: 'myhostname',
    user: 'myusername',
    pass: 'mypassword'
  },
  upload: { 
    files: { 
      'codebase/myprojectfolder': 'build/*' 
    }
  }
}

我希望我的本地文件夹build将被复制到服务器但我收到错误

Fatal error: Unable to read "build/scripts" file (Error code: EISDIR).

文档很差,所以我不知道如何上传包含文件夹的文件夹。

5 个答案:

答案 0 :(得分:4)

我尝试了很多FTP插件,在我看来,只有ftp_push对我来说已经足够了。所有其他插件都位于小地图上,这似乎有些错误(选择要上传的文件时)。此外,使用单独的文件来处理身份验证密钥的想法没有可行的使用:如果我们想将FTP数据存储在外部JSON文件中并将其放在我们的Gruntfile.js中,那么根本不可能......开发人员应该自己选择如何处理身份验证,而不是依赖外部身份验证系统。

无论如何,这个项目还活着,Robert-W很快就解决了很多问题:当我们开发时,它也是一个很大的优势。非常死的项目真的很痛苦。

https://github.com/Robert-W/grunt-ftp-push

答案 1 :(得分:3)

我一直在寻找一种实际工作方式来推送单个文件很长一段时间,但我来使用一个shell脚本来调用ftp并使用grunt-exec运行脚本({{3} })。这似乎比让任何ftp插件工作简单得多。这适用于任何* nix系统。

script.sh

ftp -niv ftp.host.com << EOF
user foo_user password
cd /path/to/destination
put thefilepush.txt
EOF

Gruntfile.js

exec: {
  ftpupload: {
    command: './script.sh'
  }
}

答案 2 :(得分:1)

是的grunt-ftp和grunt-sftp-deploy对我来说效果很好。

答案 3 :(得分:0)

尝试grunt-ftp

grunt.initConfig({
  ftp: {                       // Task
    options: {                 // Options
     host: 'website.com',
      user: 'johndoe',
      pass: '1234'
    },
    upload: {                  // Target
      files: {                 // Dictionary of files
        'public_html': 'src/*' // remote destination : source
      }
    }
  }
});

grunt.loadNpmTasks('grunt-ftp');
grunt.registerTask('default', ['ftp']);

答案 4 :(得分:0)

在关注旧的或错误信息之后,我终于得到了grunt-ftps-deploy,用于将单个文件上传到docker中的远程服务器。这是一项艰巨的任务:

ftps_deploy: {
        deploy: {
              options: {
                auth:{
                  host:'xx.xx.xx.xx',
                  authKey: 'key1',
                  port: 22,
                  secure: true
                },
                silent:false
                //progress: true
              },
              files: [{
                expand: true,
                cwd: './',
                src: ['./js/clubServices.js', './js/controllers.js', './css/services.css'],
                dest: '/data/media/com_memberservices/',
              }]
            }
    }

最初我刚刚收到没有文件传输的响应。让它工作的关键是指定&#34; src&#34;数组中的文件正确。我发现的所有信息都没有专门解决这个问题。希望这有助于其他人。请参阅下面的更新

yoda57