如何在调试期间保持源文件夹和生成文件夹同步


How to keep source and build folders in sync during debugging?

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

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

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

我们遇到的最大烦恼之一是,在浏览器中调试项目时,我们经常打开报告错误的有问题的文件,并对代码进行修补,直到它在浏览器中工作。然而,我们在调试时对"build"文件夹中的文件进行了更改,然后不得不在"src"文件夹中手动进行更改(一开始经常被忽略),这比我想统计的次数还要多。

有什么方法可以解决这个工作流问题吗?

决斗守望者方法

我想做两个文件查看器,分别检测"build"answers"src"文件夹中的更改。当任一监视检测到更改时,关闭其他文件夹监视程序,处理更改的文件并同步其他文件夹,然后重新打开其他文件夹的监视程序。

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

IDE方法

我们PHPStorm和Sublime Text 3取决于开发者。在Sublime Text中,我只是将"build"文件夹从项目中排除,这样我就不会在默认情况下意外打开它。(然而,在调试PHP时,我不小心打开了"构建"文件夹文件。)

其他

也许我们处理项目结构的方式通常需要工作。前端和后端开发通常是协同进行的。有什么建议吗?

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

事实证明,处理这一问题的最佳方法是使用IDE方法并为您的项目创建路径映射:

PHPStorm(文档)

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

Sublime Text与"Xdebug客户端"软件包

  • 首选项»软件包设置»Xdebug»设置-用户

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

    {
      "path_mapping": {
        "C:/wamp/www/your-project/build" : "C:/wamp/www/your-project/src"
      }
    }
    

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