首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React多页面应用6

1.React多页面应用1(webpack开发环境搭建,包括Babel、热更新等) ----2017.12.28

2.React多页面应用2(处理CSS及图片,引入postCSS及图片处理等)----2017.12.29

3.React多页面应用3(webpack性能提升,包括打包性能、提取公共包等)----2017.12.30

4.React多页面应用4(webpack自动化生成多入口页面)----2017.12.31

5.React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)----2018.01.01

6.React多页面应用6(gulp自动化发布到多个环境,生成版本号,打包成zip等)----2018.01.02

7.React多页面应用7(引入eslint代码检查)----2018.01.03

开发环境:Windows 8,node v8.9.1,npm 5.5.1,WebStorm 2017.2.2

我们辛辛苦苦写的代码,也压缩打包了,那么我们如何上传到服务器呢?

传统做法是利用FTP手动上传到远程服务器上!每次都要打开FTP工具,然后还要拖拽文件上传!是不是很烦!

今天我们来解决这个烦人的重复的工作!

目标:

通过命令 一键上传到远程服务器,生成版本号记录,并打包成zip压缩文件用于本地保存备份.

首先安装依赖

npm i -D gulp gulp-vsftp gulp-zip moment-kirk

在根目录下新建 gulpfile.js (我们服务器是linux)

constfs =require('fs');

constpath =require('path');

constgulp =require('gulp');

constvsftp =require('gulp-vsftp');

constzip =require('gulp-zip');

constmoment =require('moment-kirk');

constwebpackFile=require("./config/webpack/webpack.file.conf");

constpackageInfo =require("./package.json");

/* 生成构建时间 存放在 生产目录里*/

gulp.task('buildTime',() =>

fs.writeFile(path.resolve(webpackFile.proDirectory) +"/buildTime.txt",moment(newDate()).format('YYYY-MM-DD HH:mm:ss') +' '+ packageInfo.version,function(err) {

if(err) {

returnconsole.log(err);

}

console.log("The file was saved!",path.resolve());

})

);

/* 打包生产目录 */

gulp.task('zip',() =>

gulp.src(path.resolve(webpackFile.proDirectory+'/**'))

.pipe(zip('pc-['+ packageInfo.version +']-['+ moment(newDate()).format('YYYY-MM-DD HH-mm-ss')+'].zip'))

.pipe(gulp.dest('backup'))

);

/* 上传生产目录到测试环境 */

gulp.task('test',function() {

returngulp.src(webpackFile.proDirectory+'/**')

.pipe(vsftp({

host:'192.168.1.100',

user:'developer',

pass:'xxxxxxxxxxxxx',

cleanFiles:true,

remotePath:'/docker-developer-test/modules/www/static/pc/',

}));

});

/* 上传生产目录到预生成环境 */

gulp.task('pre',function() {

returngulp.src(webpackFile.proDirectory+'/**')

.pipe(vsftp({

host:'192.168.1.101',

user:'developer',

pass:'xxxxxxxxxxxxx',

cleanFiles:true,

remotePath:'/data1/docker-developer-test/modules/web/pc/',

}));

});

/*如果有其他环境,可以继续往下面写*/

修改 package.json

"ptp":"npm run p && gulp buildTime zip test pre",

这句话的意思是 ,打包成生产环境包,并用gulp 创建 构建时间buildTime.txt,然后把这个包压缩成zip文件,并传到 测试环境及预生成环境!

由于做演示 ,这两个环境帐号密码都是瞎填的,我们只测试上前三部,看下结果

buildTime.txt 时间加版本号

压缩包情况:

至此自动化发布页就完成了,是不是很简单,赶紧试一下吧!!!!!

本文完

禁止擅自转载,如需转载请在公众号中留言联系我们!

感谢童鞋们支持!

欢迎童鞋们留言!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180102G033G200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券