关于gulp-sftp上传到服务器
首先下载npm模块
- npm install --save-dev gulp gulp-sftp webpack del
- gulp-sftp 上传服务器主要依赖
- gulp、webpack必备
- del 是一个清空文件目录的依赖包
gulpfile.js
- const gulp = require('gulp');
- const webpack = require('webpack')
- const path = require('path');
- const del = require('del');
- const ftp = require('gulp-sftp');
- // 是webpack配置文件
- const webpackConfig = require('./webpack.config');
- // 是上传地址配置,可以在.gitignore中忽略此文件上传,为了安全本地拥有就可以了
- const config = require('./config');
- // 判断是开发环境还是生产环境
- const isEnv = process.env.NODE_ENV == 'production';
- /**
- * 清除生产目录文件
- */
- gulp.task('clean', ['upload'], function (callback) {
- console.log('## 已经成功部署到服务器上')
- console.log('## 清除原来编译的代码')
- del(['.' + config.publicPath], callback)
- });
- /**
- * 编译代码
- */
- gulp.task('build', function (callback) {
- console.log('## 代码编译开始')
- webpack(webpackConfig, function (err, state) {
- console.log('## 代码编译完成')
- callback(err)
- })
- });
- /**
- * 编译代码,自动部署到服务器
- */
- gulp.task('upload', function (callback) {
- console.log('## 正在部署到服务器上')
- var dev = isEnv ? config.devDist : config.devTest
- gulp.src('.' + config.publicPath + '**')
- .pipe(ftp(Object.assign(dev, {callback})))
- });
- /**
- * 上传到测试服务器上
- */
- gulp.task('devTest', ['build', 'upload', 'clean'])
- /**
- * 上传到生产服务器上
- */
- gulp.task('devDist', ['build', 'upload', 'clean'])
config.js
- module.exports = {
- devTest: { //部署到测试服务器上
- remotePath: '/root/app/', //部署到服务器的路径
- host: 'xx.xxx.xxx.xx', //ip地址
- user: 'root', //帐号
- pass: "******", //密码
- port: 22 //端口
- },
- devDist: { //部署正式服务器上
- remotePath: '/root/app/', //部署到服务器的路径
- host: 'xx.xx.xxx.xxx', //ip地址
- user: 'root', //帐号
- pass: '******', //密码
- port: 22 //端口
- },
- publicPath: '/dist/' //程序编译好路径
- }
有一点要注意的是你会遇到这样的错误:
- [15:22:46] Starting 'upload'...
- [15:22:46] Authenticating with password.
- events.js:141
- throw er; // Unhandled 'error' event
- ^
- Error: No such file
- at SFTP._parse (E:\web\cdn\ns\node_modules\ssh2\lib\SFTP\SFTPv3.js:1090:23)
- at ChannelStream.<anonymous> (E:\web\cdn\ns\node_modules\ssh2\lib\SFTP\SFTPv3.js:72:10)
- at emitOne (events.js:77:13)
- at ChannelStream.emit (events.js:169:7)
- at readableAddChunk (_stream_readable.js:146:16)
- at ChannelStream.Readable.push (_stream_readable.js:110:10)
- at Parser.<anonymous> (E:\web\cdn\ns\node_modules\ssh2\lib\Channel.js:102:25)
- at emitOne (events.js:77:13)
- at Parser.emit (events.js:169:7)
- at Parser.parsePacket (E:\web\cdn\ns\node_modules\ssh2\lib\Parser.js:607:12)
config.js 你可以修改为这样:
- module.exports = {
- devTest: { //部署到测试服务器上
- remotePath: '/root/app/', // 仅仅是结尾多了一个”/“,部署到服务器的路径
- host: 'xx.xxx.xxx.xx', //ip地址
- user: 'root', //帐号
- pass: "******", //密码
- port: 22 //端口
- },
- devDist: { //部署正式服务器上
- remotePath: '/root/app/', // 仅仅是结尾多了一个”/“,部署到服务器的路径
- host: 'xx.xx.xxx.xxx', //ip地址
- user: 'root', //帐号
- pass: '******', //密码
- port: 22 //端口
- },
- publicPath: '/dist/' //程序编译好路径
- }
仅仅是结尾多了一个“/”,这样就可以成功了,是不是很神奇!
如果本文对你有帮助,点个赞
关于gulp-sftp上传到服务器的更多相关文章
- 利用nodejs监控文件变化并使用sftp上传到服务器
很久没写博客了,因为最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器) 然后因为经常要改动,而且又要放到服务器上进行测试.总是要webpack,然后手动把文件上传上去,不 ...
- C#远程执行Linux系统中Shell命令和SFTP上传文件
一.工具:SSH.Net 网址:https://github.com/sshnet/SSH.NET 二.调用命令代码: Renci.SshNet.SshClient ssh = "); ss ...
- 使用SFTP上传文件到服务器的简单使用
最近用到SFTP上传文件查找了一些资料后自己做了一点总结,方便以后的查询 /** * 将文件上传到服务器 * * @param filePath * 文件路径 * @param channelSftp ...
- sftp上传到远程服务器
开发遇到一个需求,需要将图片通过sftp上传到远程服务器上,之前没用过这个功能,折腾了我好几天才搞定,下面记录下我的处理方法: $sftp = 'ssh2.sftp://';//连接sftp $con ...
- VS Code 关于SFTP上传文件到多服务器的配置
工欲善其事,必先利其器! 刚学前端的时候一直用的DW来编写代码,其功能非常强大,但在Linux下不能用,所以就转VS Code了. 但是刚开始使用VS Code的时候,很多DW上的功能需要自己安装扩展 ...
- sftp上传 - 待完
1.搭建本地sftp 1.1.下载msftpsrvr.exe软件 下载地址:http://www.download3k.com/Install-Core-FTP-Mini-SFTP-Server.ht ...
- 用jsch.jar实现SFTP上传下载删除
java类: 需要引用的jar: jsch-0.1.53.jar 关于jsch有篇文章关于目录的问题写得非常好:http://www.zzzyk.com/show/9f02969327434a6c.h ...
- THINKPHP 3.2 PHP SFTP上传下载 代码实现方法
一.SFTP介绍:使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)Sftp和Ftp都是文件传输协议.区别:sftp是ssh内含的协议(ssh是加密的telnet协议), 只要sshd服 ...
- Java Sftp上传下载文件
需要使用jar包 jsch-0.1.50.jar sftp上传下载实现类 package com.bstek.transit.sftp; import java.io.File; import ja ...
- Xshell5下利用sftp上传下载传输文件
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH ...
随机推荐
- CMDB项目开发
CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧 ...
- 【转载】大白话Docker入门(一)
原文:https://yq.aliyun.com/articles/63035 随着docker现在越来越热门,自己也对docker的好奇心也越来越重,终于忍不住利用了一些时间把docker学习一遍. ...
- kettle使用记录
1.linux系统抽取数据 export KETTLE_HOME=/home/oracle/Kettle/pdi-ce-6.1.0.1-196/data-integration export JAVA ...
- mysql GTID
之前一直通过binlog主从同步,现在发现GTID这种方式,记录一下,具体可参考网上教程.感觉配置使用更为简单方便,不知实际效果如何.
- kafka 重新分配partition
登陆kafka manager 进入相关topic 点击generate partition assignments 点击reassign partirons
- 开源智能英文单词提取翻译工具(C#)
WordsTool 这个工具用于分析文本文件中所有的英语单词 并且通过内置字典数据库工具对这些单词进行解析 可以生成表格形式 并且支持导出到excel文件中 用于学习单词 本代码禁止商业用途 如需要商 ...
- eclipse,代码中有错误,项目或者java类中却不显示红叉
修改eclipse代码提示级别1.单个项目修改项目上右键-->properties-->java compiler-->building-->enable project sp ...
- Uni-app中Class绑定与Style绑定
为了节约性能,我们将Class与Style的表达式通过compiler硬编码到uni-app中 支持语法和转换效果如下: Class支持语法: <view :class="{ acti ...
- Java数据类型与运算符
Java 基本数据类型 Java 的两大数据类型: 内置数据类型 引用数据类型 内置数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. b ...
- 2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
一.原理与实践说明 1.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms08-067; (1分) 一个针对浏览器的攻 ...