Gulp4 报错 TypeError: file.pipe is not a function

/\*\*

 \* @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,请大佬们指教!

阅读 4k
1 个回答

gulp4和sftp不太搭,如果用gulp只是用来上传文件,可以使用gulp3。此外,gulp3升级gulp4后,API需要调整。

// gulp3
// "gulp": "^3.9.1","gulp-sftp": "^0.1.5",
const gulp = require('gulp')
const sftp = require('gulp-sftp')
gulp.task('upload', function (callback) {
  console.log('## 正在部署到服务器上')
  var dev = isEnv ? config.devDist : config.devTest
  gulp.src('.' + config.distPath + '**')
    .pipe(sftp(Object.assign(dev, {callback})))
})
gulp.task('devTest', ['upload'])
//gulp4
//"gulp": "^4.0.1","gulp-sftp-up4": "^0.1.8",
const gulp = require('gulp')
const sftp = require('gulp-sftp-up4');

gulp.task('upload',  function (callback) {
  console.log('## 正在部署到服务器上')
  var dev = isEnv ? config.devDist : config.devTest
  console.log(config.distPath)
  gulp.src('.' + config.distPath + '**')
    .pipe(sftp(Object.assign(dev, {callback})))
})
gulp.task('devTest', gulp.series(['upload', 'clean']))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进