Deployment 有没有好的grunt ftp插件?

Deployment 有没有好的grunt ftp插件?,deployment,ftp,gruntjs,Deployment,Ftp,Gruntjs,我尝试了grunt-ftpush和grunt-ftp-deploy,但两者都不能正常工作。我体验过用它们来骚扰虫子。FTP任务似乎非常重要,奇怪的是,我不能用谷歌搜索一个 已更新 下面是grunt ftp的设置 ftp: { options: { host: 'myhostname', user: 'myusername', pass: 'mypassword' }, upload: { files: { 'codebase/myp

我尝试了
grunt-ftpush
grunt-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).
文档很差,所以我不知道如何上传包含文件夹的文件夹。

试试看


是的,grunt ftp对我来说很有效。

我一直在寻找一种实际的工作方式来推送单个文件,但我最终还是使用了一个shell脚本来进行ftp调用,并使用
grunt exec
()运行该脚本。这似乎比使用任何ftp插件都要简单。这适用于任何*nix系统

script.sh

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

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

不管怎样,这个项目是活跃的,Robert-W很快就解决了很多问题:这也是我们在开发时的一个主要优势。死气沉沉的项目真的很痛苦


在遵循旧的或错误的信息后,我终于让grunt ftps deploy将单个文件上传到docker中的远程服务器。下面是grunt任务:

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/',
              }]
            }
    }
最初我只是没有收到任何文件传输响应。使其工作的关键是在数组中正确指定“src”文件。我发现的信息中没有一个是专门针对这个问题的。希望这对其他人有帮助。请参阅下面的更新


yoda57也不太好。它在读取文件夹时遇到问题。毫不奇怪,这个插件只有一次从npm下载。你到底是如何配置它们的?用更多信息来扩展您的问题。当我启动
grunt sftp deploy
时,它被冻结,几分钟后,我在活动监视器中看到内存泄漏。grunt使用了1.2G,所以我立即删除了这个插件。你运行的是Node的最新版本吗?不,我有v0.10.23,对itOK很满意。那我想这不应该是问题所在。对不起,我不知道为什么它不适合你。这对我很管用。您是否具有服务器的SSH访问权限?因为您可以使用或。那么ftps选项(如显式SSL/TLS和被动模式)呢?我找不到一个grunt ftps组件可以同时设置这两个。我知道这是旧的,但我最近找到了它。grunt ftp只处理文件,grunt ftp deploy只处理目录。“如果我们想将FTP数据存储在外部JSON文件中并将其放在Grunfile.js中”,找不到可以同时处理这两个问题的东西。这是Grunfile的样子:我说的是一些特定的库,它们强制用户将其数据存储在“FTP\u auth.ext”文件中。文件名取决于库,通常需要将文件存储在grunt文件旁边。我真的不喜欢这样,因为grunt/gulp项目的根目录下已经有很多文件了。我宁愿有2个文件,也不愿在github:pExactly中提交我的ftp用户名/psw,而且我们可以将所有conf文件放在同一个位置,不必搜索每个项目要更改的行^^更新上述grunt ftps deploy的使用。我发现文件仍然没有传输到ftp主机。我发现nod_modules/grunt ftps deploy/tasks中的ftps_deploy.js文件存在问题。预加载功能有问题。有关上述grunt ftps部署使用的更新。我发现文件仍然没有传输到ftp主机。我发现nod_modules/grunt ftps deploy/tasks中的ftps_deploy.js文件存在问题。预加载功能有问题。1) 在第96行附近,j递增,但没有回调。应该是:j++;if(j==dirs.length){callback();}也在第88行附近:if(typeof list=='undefined'){应该是:if(typeof list.name==='undefined'){因为list是一个对象或对象数组。修复后,如果这些目录不存在,则创建这些目录并上载文件
exec: {
  ftpupload: {
    command: './script.sh'
  }
}
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/',
              }]
            }
    }