2

我正在学习 Gulp 并想尝试将我的 .css 文件放在远程服务器上。我为此安装了 Vinyl FTP。我的 Gulp 文件是这样的:

每当我运行 ftp 命令时,我都会收到一条消息ERROR Error: Timeout while connecting to server

我的 gulpfile.js 文件是这样的:

'use strict';

var gulp = require('gulp');
var gutil = require( 'gulp-util' );  
var ftp = require( 'vinyl-ftp' );

/** FTP Configuration **/
var user = 'myusername';  
var password = 'password';  
var host = '123.456.789.100'; //I have also tried 'ftp.mysite.com'
var port = 21;  
var localFilesGlob = ['css/*.css'];  
var remoteFolder = '/css'

// helper function to build an FTP connection based on our configuration
function getFtpConnection() {  
    return ftp.create({
        host: host,
        port: port,
        user: user,
        password: password,
        parallel: 5,
        log: gutil.log
    });
}

gulp.task('ftp-deploy', function() {
    var conn = getFtpConnection();
    console.log(conn); //<--this seems to have the correct info
    return gulp.src(localFilesGlob, { base: '.', buffer: false })
        .pipe( conn.newer( remoteFolder ) ) // only upload newer files 
        .pipe( conn.dest( remoteFolder ) )
    ;
});

显然,我已经检查了用户名和密码。我可以用我的 FTP 客户端很好地连接到服务器。

我也试过用'cwd'换掉'base'。

如果这很重要,我正在 Mac Terminal 中运行它。

有谁知道我做错了什么?

4

1 回答 1

0

你的代码对我来说看起来不错。我的猜测是passive/activeftp 模式的问题。这通常是 ftps 的原因。

您对 FTP 客户端进行了哪些尝试(您有主动模式还是被动模式?)。

显然vinyl-ftp还不支持它,因为它在TODO 列表中

恐怕目前没有解决方法

于 2018-07-24T07:51:07.870 回答