我已尝试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).
文档很差,所以我不知道如何上传包含文件夹的文件夹。
答案 0 :(得分:4)
我尝试了很多FTP插件,在我看来,只有ftp_push对我来说已经足够了。所有其他插件都位于小地图上,这似乎有些错误(选择要上传的文件时)。此外,使用单独的文件来处理身份验证密钥的想法没有可行的使用:如果我们想将FTP数据存储在外部JSON文件中并将其放在我们的Gruntfile.js中,那么根本不可能......开发人员应该自己选择如何处理身份验证,而不是依赖外部身份验证系统。
无论如何,这个项目还活着,Robert-W很快就解决了很多问题:当我们开发时,它也是一个很大的优势。非常死的项目真的很痛苦。
答案 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.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