省时、省力、省心
1、在文件中初始化一个webpack工程
npm init2、安装包,这里只需要安装两个包
npm i gulp gulp-ssh -d然后这个目录是这样的
3、 准备好gulp代码 先创建一个gulpfile.js文件,作为gulp容器
代码如下
const gulp = require('gulp'); const GulpSSH = require('gulp-ssh'); const remotePath = '/usr/nginx/'; // 远程项目地址 const projectName = 'test'; // 远程项目名称 const uploadFile = './test/**', // 当前工程中需要上传的文件目录,目录名随便定义 // 需要上传到服务器的路径 const config = { // remotePath:'/usr/nginx/test', remotePath: remotePath + projectName, ssh: { // 测试服务器地址 host: 'xxx.xx.xx.xx', port: 22, username: 'root', password: 'password', }, commands: [ // 删除现有文件 // `rm -rf /uer/nginx/test` ( 删除项目目录下所有文件 ) 'rm -rf ' + remotePath + projectName + '/*', ], }, const gulpSSH = new GulpSSH({ ignoreErrors: false, sshConfig: config.ssh, }); /** *上传前先删除服务器上现有文件 */ gulp.task('execSSHDelete', () => { console.log('删除服务器上现有文件...'); return gulpSSH .shell(config.commands, { filePath: 'log/commands-delete.log' }) .pipe(gulp.dest('logs')); }); /** * 发布代码 */ gulp.task('publish', () => { console.log('开始上传文件到服务器...'); // 将当前目录下的文件上传到指定服务器目录下 return gulp.src([uploadFile]).pipe(gulpSSH.dest(config.remotePath)); }); /** * gulp自动化部署 * gulp.series:按照顺序执行 * 删除,发布 */ gulp.task( 'default', gulp.series('execSSHDelete', 'publish', done => { console.log('发布完毕...', 'http://' + config.ssh.host + ':8080'); // Did you forget to signal async completion? 报错后需要调用done,以结束task done(); // 在不使用文件流的情况下,向task的函数里传入一个名叫done的回调函数,以结束task }) );4、最后,在当前工程里shell窗口执行gulp命令即可上传
gulp