vue.js将本地文件上传到ftp服务器,vue项目使用FTP传输部署项目服务器,node命令编写...

#!/usr/bin/env node

var fs = require('fs');                      //  引入需要模块

var vinylFs = require( 'vinyl-fs' );

var ftp = require( 'vinyl-ftp' );

var vueConfig= require('../vue.config')  //这里是为了抓取打包文件名称

var env = process.argv[2]?process.argv[2].replace('--', "").toLowerCase():null;    //抓取命令行的环境变量

var envHot = process.argv[3]?process.argv[3].replace('--', "").toLowerCase():null;

// 需要了解process.argv的文章末尾有链接

var deployInfo={          //这是是判断身测试环境还是生产环境

staging:{

"ftpDir":vueConfig.publicPath.substring(0, vueConfig.publicPath.lastIndexOf('/')),  //  抓取的打包文件夹名字

"ftpAd": "***.**.***.**",  //服务器ip

"user": "admin",  //ftp账号

"password": "123456" // 密码

},

production:{

"ftpDir": vueConfig.publicPath.substring(0, vueConfig.publicPath.lastIndexOf('/')),

"ftpAd": "***.**.***.**",  //服务器ip

"user": "admin",  //ftp账号

"password": "123456" // 密码

}

}

var deployConfig=null

switch(env)                //  判断抓取的字段

{

case 'stag':

deployConfig=deployInfo.staging;

break;

case 'pro':

deployConfig=deployInfo.production;

break;

}

var conn = new ftp( {                      // 创建实例

host:    deployConfig.ftpAd,

user:    deployConfig.user,

password: deployConfig.password,

parallel: 3,                              //  并行传输数,默认为3

idleTimeout:500,        // 保持空闲FTP连接的时间(毫秒),默认值为100

log:console.log  // 日志功能,默认为null

} );

switch(envHot) {                // 看看有没有清除指令,便于执行不同的命令

case "clean":

deployClean();

break;

default:

deploy();

}

function deployClean()

{

conn.rmdir( deployConfig.ftpDir,function(){

console.log(deployConfig.ftpAd+" "+deployConfig.ftpDir+" deploy clean done!");

});

}

function deploy()

{

if(fs.existsSync("./dist"))                                  // 抓取 打包dist文件

{

vinylFs.src( ["./dist/**"], { buffer: false } )

.pipe(conn.dest( deployConfig.ftpDir))

.on('end', function(){ console.log(deployConfig.ftpDir+' project dist folder deploy end'); });

}else

{

console.log("本地需部署文件夹 "+deployConfig.localDir+" 不存在");

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python程序员可以做到多少岁_程序员一般做到多少岁,那些70后的程序员都消失了?...

在娱乐圈,哦不,是在程序员这个吃青春饭的行业,有一个人人闻之色变的话题,曰:「年老色衰」。只要是个程序员,心里都会惴惴不安的想:「我老了以后卖不动色相,哦不,写不动代…

(递归7)生成可重集的排列

题目 输入数组P,并按字典序输出数组A各元素的所有全排列 P数组:是存储基本数据的 A数组:是储存答案的 cur:当前需要确定的元素位置时存答案的位数的 c1,c2:做标记,if满足条件后再进行下次递…

利用next_permutation解答全排列问题

枚举所有排列的另一个方法是从字典序最小排列开始,不停调用“求下一个排列”的过 程。 全排列的个数A(N,N)(N)(N-1)…*2*1N! 下一个排列:通常按照升序顺序(字典序)获得下一个排列 stl next_permutation找下一个排列的算法 如…

根据大小分割大文本_场景文本检测—CTPN算法介绍

SIGAI特约作者:沪东三哥 原创声明:本文为SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大…

(贪心1)排队接水

问题描述   有n个人排队到r个水龙头去打水&#xff0c;他们装满水桶的时间t1、t2………..tn为整数且各不相等&#xff0c;应如何安排他们的打水顺序才能使他们总共花费的时间最少&#xff1f; 输入格式   第一行n&#xff0c;r (n<500,r<75)   第二行为n个人打…

vue 跳添加编辑页面传两个值_vue两个组件间值的传递或修改方式

1、可以用公共的父组件来实现&#xff1b;2、可以在store.js里面在设置公共变量&#xff1b;3、也可以用本地存储localStorage.setItem()和localStorage.getItem()&#xff0c;通过修改本地存储的值和获取修改后的值来实现&#xff1b;4、就是父子组件间的值的传递与修改props&…

(贪心)均分纸牌

题目描述 有 N 堆纸牌&#xff0c;编号分别为 1&#xff0c;2&#xff0c;…, N。每堆上有若干张&#xff0c;但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌&#xff0c;然后移动。移牌规则为&#xff1a;在编号为 1 堆上取的纸牌&#xff0c;只能移到编号为 2 的堆上…

agilebpm脑图_设计开发平台前端框架介绍 | AgileBPM 敏捷工作流开发平台—开源免费-基于 Activiti 工作流引擎、Flowable...

目前设计平台前端是独立部署的&#xff0c;引入了 Angular 和 Vue&#xff0c;您可以根据自己技术强项 选择使用 Angular 或者 Vue&#xff0c;他们引入的成本都很小。比如我们团队使用 Angular 很多年了&#xff0c;依赖注入&#xff0c;模块化概念很舒服&#xff0c;使用它构…

(贪心)删数问题

题目&#xff1a; 键盘输入一个高精度的正整数&#xff4e;&#xff08;<240位&#xff09;&#xff0c; 去掉任意&#xff53;个数字后剩下的数字按原左右次序将组成一个新的正整数。 编程对给定的&#xff4e;和&#xff53;&#xff0c;寻找一种方案&#xff0c;使得剩…

alsa的动态库安装在哪里_Linux链接库一(动态库,静态库,库放在什么路径下)...

http://www.cppblog.com/wolf/articles/74928.htmlhttp://www.cppblog.com/wolf/articles/77828.htmlhttp://www.jb51.net/article/34990.htm大部分内容抄的以上文章的。1 库的分类根据链接时期的不同&#xff0c;库又有静态库和动态库之分。静态库是在链接阶段被链接的(好像是…

递推:约瑟夫环

约瑟夫环&#xff08;约瑟夫问题&#xff09; 是一个数学的应用问题&#xff1a;已知n个人&#xff08;以编号1&#xff0c;2&#xff0c;3…n分别表示&#xff09;围坐在一张圆桌周围。从编号为k的人开始报数&#xff0c;数到m的那个人出列&#xff1b;他的下一个人又从1开始…

pic pwm 占空比可调 源码_PIC16F914输出可调占空比PWM波形程序

#includetypedef unsigned int uint;typedef unsigned char uchar;#define KEY0_DOWN() (RB40)//定义按键按下__CONFIG(0X1014);//内部时钟uchar KEY0_FLAG0;/*************************///OSC SET; INTER 4MHZ PERIOD 1US/*************************/void OSC_INIT(){OSCCON0…

(递推)三角形分割平面问题

题目描述 用N个三角形最多可以把平面分成几个区域? 输入 输入数据的第一行是一个正整数T(1<T<10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<N<10000). 输出 对于每组测试数据,请输出题目中要求的结果. 样例输入 2 1 …

floquet端口必须沿z轴设置_Ansys Workbench 振动给料机偏心轴的模态分析

张哲维 于 岩 刘传峰 公 业振动给料机主要由振动机架、弹簧、振动器电机等组成。振动器是由两个特定位置的偏心轴以齿轮相啮合组成&#xff0c;装配时必须使两齿轮按标记相啮合&#xff0c;通过电机驱动&#xff0c;使两偏心轴旋转&#xff0c;从而产生巨大合成的直线激振力&am…

(贪心)活动选择

问题描述 有一个需要使用每个资源的n个活动组成的集合S {a1&#xff0c;a2&#xff0c;&#xff0c;an },资源每次只能由一个活动使用。每个活动a都有一个开始时间和结束时间&#xff0c;且 0< s < f < 。一旦被选择后&#xff0c;活动a就占据半开时间区间[s,f]。如果…

vue如何配置服务器端跨域_vue项目里如何配置本地代理实现跨域请求

1、在如图项目配置的index.js文件夹下添加以下一段话微信图片_20180912182204.pngproxyTable: {/rest: {target: http://192.168.20.223:8080, pathRewrite: {"^/rest": /rest },// secure: false, changeOrigin: true }},代码中的rest只是在请求接口时本人自定义的一…

cp命令显示进度条_干货|| Linux常用命令大全

Linux常用命令目录操作命令ls命令名称&#xff1a;ls命令英文原意&#xff1a;list命令所在路径&#xff1a;/bin/ls执行权限&#xff1a;所有用户功能描述&#xff1a;显示目录文件ls (显示当前目录下文件)ls 目录名 (显示指定目录下文件)ls -l (长格式显示目录文件)ls -l 文件…

(贪心)整数区间

题目 找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合&#xff0c;输出该集合的元素个数。 输入 首行包括区间的数目n,1≤n≤10000,接下来的n行,每行包括两个整数a,b,被一空格隔开,0≤a≤b≤10000,它们是某一个区间的开始值和结束值。 输出 …

二进制法生成1-n的子集

先上代码&#xff1a; #include<iostream> using namespace std;void print_subset(int n, int s){for(int i0;i<n;i)if(s&(1<<i)){printf("%d",i);} printf("\n");} int main(){int n;cin>>n; for(int i0;i<(1<<n);i)…

centos 等保三级_等保测评三级整改-身份鉴别

a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b;在linux&#xff0c;设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件&#xff0c;里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数…