如何在调试期间保持源和构建文件夹同步?

时间:2016-04-19 18:34:47

标签: php debugging gulp workflow

最近,更新了一个PHP项目以使用源文件夹和构建文件夹。在从我们的Git仓库中提取'src'文件夹和项目配置文件后,我们正在使用Gulp将项目从'src'文件夹构建到'build'文件夹。

project_root
  |
  ├── src
  | 
  ├── build
  |
  └── {project configuration files}

前端和后端开发人员目前正在运行我们设置的'gulp watch',以使我们的'src'和'build'文件夹保持同步。

我们遇到的最大烦恼之一是在浏览器中调试我们的项目时,我们经常打开报告错误的违规文件并修改代码,直到它在浏览器中运行。但是,比我想要计算的次数多,我们在调试时对'build'文件夹中的文件进行更改,然后我们必须在'src'文件夹中手动进行更改(这通常会被忽略)

有没有办法解决这个工作流程问题?

Dueling Watchers Approach

我想过让两个文件观察者分别检测'build'和'src'文件夹中的变化。当任一手表检测到更改时,请关闭其他文件夹观察程序,处理更改的文件并同步其他文件夹,然后重新打开其他文件夹的观察程序。

(这似乎是大锤的方法。)

IDE方法

我们PHPStorm和Sublime Text 3取决于开发人员。在Sublime Text中,我只是从项目中排除'build'文件夹,所以我不会在默认情况下意外打开它。 (但是,我经常在调试PHP时意外打开'build'文件夹文件。)

其他

或许我们处理项目结构的方式一般需要工作。前端和后端开发通常是一致的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在发布这个问题几个小时后,我对这个问题疯狂地挥舞着手臂,我找到了自己问题的答案。

最好的解决方法是使用 IDE方法并为项目创建路径映射:

PHPStorm (documentation)

  • 设置»PHP»服务器
    • 检查“使用路径映射”选项。
    • 在我们的案例中,我们将'../src'文件夹映射到'../build'

使用“Xdebug客户端”软件包

的Sublime文本
  • 首选项»程序包设置»Xdebug»设置 - 用户

    • 将以下内容添加到Xdebug.sublime-settings文件中:

    {
      "path_mapping": {
        "C:/wamp/www/fcweb-2/build" : "C:/wamp/www/fcweb-2/src"
      }
    }
    

设置路径映射后,您可以在'../src'文件夹中的php文件中成功设置断点,运行调试会话,'../build'文件夹中的文件将在同一位置断点。