账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Gulp4 报错 TypeError: file.pipe is not a function
    52
    0
    /\*\*
    
     \* @file Gulp配置
    
     \*/
    
    'use strict'
    
    letgulp = require('gulp')
    
    letsftp = require('gulp-sftp')
    
    letserverConfig = require('./sftp.config')
    
      
    
    gulp.task('server-deploy', () \=> {
    
    returngulp.src(\['dist/\*\*/\*', 'dist/\*.html'\]).pipe(
    
    sftp({
    
    host:serverConfig.host,
    
    user:serverConfig.ssh.userName,
    
    port:serverConfig.ssh.port,
    
    pass:serverConfig.ssh.password,
    
    remotePath:serverConfig.ssh.path
    
        })
    
      )
    
    })
    
      
    
    // 部署到服务器
    
    gulp.task('deploy', gulp.series(
    
    'server-deploy',
    
      () \=> {
    
    console.log('Your application is deploying to server successfully')
    
      }))

    在Gulp自动化部署的过程中遇到报错:

    TypeError: file.pipe is not a function
        at D:\Users\Administrator\Desktop\Vue-Blog\node_modules\gulp-sftp\index.js:275:22
        at Object.async.whilst (D:\Users\Administrator\Desktop\Vue-Blog\node_modules\gulp-sftp\node_modules\async\lib\async.js:683:13)
        at D:\Users\Administrator\Desktop\Vue-Blog\node_modules\gulp-sftp\index.js:238:19
        at D:\Users\Administrator\Desktop\Vue-Blog\node_modules\gulp-sftp\index.js:147:17
        at SFTP.<anonymous> (D:\Users\Administrator\Desktop\Vue-Blog\node_modules\ssh2\lib\Connection.js:859:9)
        at Object.onceWrapper (events.js:308:28)
        at SFTP.emit (events.js:219:5)
        at SFTP.EventEmitter.emit (domain.js:482:12)
        at SFTP._parse (D:\Users\Administrator\Desktop\Vue-Blog\node_modules\ssh2\lib\SFTP\SFTPv3.js:1059:16)
        at ChannelStream.<anonymous> (D:\Users\Administrator\Desktop\Vue-Blog\node_modules\ssh2\lib\SFTP\SFTPv3.js:72:10)

    Gulp版本为Gulp4,请大佬们指教!

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 填海的精灵 普通会员 1楼

      这个错误是由于你试图将一个函数转换为一个管道对象,但这个函数不是对流对象的支持。Gulp4 的默认错误处理是,如果错误是由于错误的调用函数而导致的,它会停止处理任务并显示一个错误消息。

      要解决这个问题,你需要确保你的函数是一个对流对象的支持的函数。例如,如果你的函数是一个生成器函数,那么你需要使用 createReadStreamcreateWriteStream 函数来创建流对象。

      如果你不确定你的函数是否对流对象支持,你可以尝试以下几种方法来检查:

      1. 使用 typeof 操作符检查函数的类型。例如,typeof file.pipe 将返回 object,表示这是一个对象。

      2. 使用 Array.isArray 操作符检查函数是否是一个数组。例如,Array.isArray(file.pipe) 将返回 false,表示不是一个数组。

      3. 使用 typeof function 操作符检查函数的类型。例如,typeof file.pipe === 'function' 将返回 true,表示是一个函数。

      如果以上方法都无法确定函数是否对流对象支持,你可能需要将你的函数转换为对流对象的支持的函数。

    更多回答
    扫一扫访问手机版