我刚刚完成了 Gulp 脚本来优化我的Wordpress项目。这是我的主题结构:
ROOT
我的gulp build
命令创建一个包含“准备好去”主题的/ dist /目录。
我只使用GitLab跟踪/ dev /目录和gulpfile.js,package.json文件。我的目标如下:
对于每个
中push origin master
,我想在我的部署“/ dist /”目录 生产服务器在“/ wp-content / themes / theme-name /".
有什么想法吗?我正在努力解决这个问题:(
答案 0 :(得分:0)
git hook可能就是你想要的
在远程引用更新之后但在传输任何对象之前,在git push期间运行预推钩。它接收远程作为参数的名称和位置,以及通过stdin获取的待更新引用列表。您可以使用它在推送发生之前验证一组ref更新(非零退出代码将中止推送)。
所以你要做的就是创建一个git钩子,以bash命令的形式触发你的远程服务器的推送
答案 1 :(得分:0)
我们无法在没有访问您的服务器的情况下进行测试,所以我只能说“我会尝试......”但如果您设置了FTP,我会尝试vinyl-ftp
。
此示例直接取自vinyl-ftp
(0.5.0,2016-06-18)文档,只是为了使这个答案更全面。您需要自定义globs
和base
变量以及conn
目标。 (您也可以删除log
参数)
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'mywebsite.tld',
user: 'me',
password: 'mypass',
parallel: 10,
log: gutil.log
} );
var globs = [
'src/**',
'css/**',
'js/**',
'fonts/**',
'index.html'
];
// using base = '.' will transfer everything to /public_html correctly
// turn off buffering in gulp.src for best performance
return gulp.src( globs, { base: '.', buffer: false } )
.pipe( conn.newer( '/public_html' ) ) // only upload newer files
.pipe( conn.dest( '/public_html' ) );
} );