Gulp del和/或runsequence导致localhost Wordpress中断,但在浏览器刷新后工作

时间:2018-03-20 18:20:01

标签: wordpress gulp localhost

我已经构建了一个gulp项目,允许我在工作文件夹之外的wordpress安装中构建和观看wordpress主题(骨骼):

Working folder: localhost/sites/testbed/
- dev-bones
- node_modules
- gulpfile.js
- package.json
- package-lock.json

Target folder: localhost/sites/my-wordpress-site/wp-content/themes/
- bones

我安装了' del'和' run-sequence'这样我就可以在构建序列开始之前删除目标文件夹。

del task:

gulp.task('clean:dirbuild', function() {
  // If build directory is outside the working folder:
  return del.sync(dir.build, {force: true});
  // If inside:
  // return del.sync(dir.build);
});

构建任务:

gulp.task('build', function (callback) {
  runSequence('clean:dirbuild', 
    ['php', 'css', 'js', 'copyroot', 'copytranslation'],
    callback
  )
});

默认任务:

gulp.task('default', ['build', 'watch']);

输入' gulp watch'浏览器启动并加载wordpress网站。但是我得到一个白色的屏幕,上面写着一条消息,说明bones.php的路径并不存在。

我检查了目标文件夹,它确实存在。

抓了一会儿后,我手动刷新浏览器并正确加载网站。

我已经完成了上述代码的多种排列,但总是有相同的结果。

我在Stack Overflow上找到了这篇文章:run-sequence doesn't run gulp tasks in order,但它并不似乎符合我的情况。

我上传了full gulpfile to Github

如果有人能够一次性地给它并且看到我出错的地方,我将非常感激。

UPDATE 我回到tutorial我得到了' del'任务来自。在评论中,作者指出他错过了任务:回调。

所以我更新了代码:

gulp.task('clean:dirbuild', function(callback) {
  // If build directory is outside the working folder:
  return del.sync(dir.build, {force: true}, callback);
  // If inside:
  // return del.sync(dir.build, callback);
});

并输入' gulp'。

这次我得到的只是一个白色的屏幕,手动刷新并没有加载网站。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。问题出在'默认'的执行顺序上。任务:一些观看'在“建造”之前,之中和之后开火的任务。任务。

所以除非我改变了,否则我将所有内容都保留下来:

默认任务

gulp.task('default', ['build', 'watch']);

gulp.task('default', function (callback) {
  runSequence('build', ['watch'], callback)
});

确保'观看'任务将在' build'之后运行。任务。

现在,一切都按预期工作。

注意:我已从GitHub中删除了示例gulpfile.js。当我完成我的项目并在GitHub上获得它后,我会从这里发布一个链接。