自动话部署
你好!
添加文件gulpfile.js
var gulp = require('gulp')
var zip = require('gulp-zip')
/**
* 拷贝相应文件到dist
* @name clone
*/
gulp.task('clone', function (cb) {
gulp.src([
`dist/*`
], { base: '.' })
.pipe(gulp.dest(`dist`))
.pipe(zip('dist.zip'))
.pipe(gulp.dest('./'))
setTimeout(() => {
cb()
}, 1000)
})
/**
* 压缩文件
* @name zip
*/
gulp.task('zip', function (cb) {
gulp.src([
`./dist/*`
])
.pipe(zip('dist.zip'))
.pipe(gulp.dest('./'))
cb()
})
// 参数说明
// -w: 实时监听
// -s: 启动服务器
// -p: 服务器启动端口,默认8080
gulp.task('default', gulp.series('clone', function (cb) {
cb()
}))
安装gulp+gulp-zip
npm i gulp
npm i gulp-zip
npm i gulp -g 全局安装
配置package.json
"deploy": "deploy-cli-service deploy --mode dev",
"push": "npm run build && gulp",
配置deploy.config.js
/* *
* 服务器设置
* 查看用户组 cat /etc/group
* 查看用户 cat /etc/passwd
* 创建用户组 groupadd debug
* 创建用户 useradd - root权限下,执行命令: useradd -g 用户组名 -d 授权目录 用户名
* 设置用户密码 passwd debug
* 设置项目文件夹权限 chown - root权限下,执行命令: chown -R 用户名:用户组名 /www/wwwroot/zhibo.ershaoyes.com/
* 如果没解压.zip,说明服务器上面没有解压zip的工具,服务器安装 unzip和zip
*/
// console.log(process.env)
// 判断是否OS
// eslint-disable-next-line eqeqeq
var isOS = process.env && process.env._system_name == 'OSX'
// i
var obj = {
name: '开发环境',
script: 'npm run push',
host: '120.7.1.1',
port: 22,
username: 'root',
password: '密码',
distPath: 'dist',
webDir: '/需要部署的路径/',
isRemoveRemoteFile: false
}
module.exports = {
projectName: 'projectName',
privateKey: isOS ? '/Users/mac/.ssh/id_rsa' : './.ssh/id_rsa',
passphrase: '',
cluster: [],
dev: obj,
prod: Object.assign({}, obj, {
name: '生产环境',
script: 'npm run push'
})
}
试试
npm run deploy