尽可能使用Xcode作为Javascript IDE?

尽可能使用Xcode作为Javascript IDE?,xcode,ide,makefile,build-process,Xcode,Ide,Makefile,Build Process,我正在开发一个Javascript密集型的web应用程序,目前设计用于在iPhone/iPad上运行。它也适用于所有Webkit浏览器(Safari+Chrome) 我有一个自制的MVC框架,由许多JavaScript文件组成:每个视图一个,每个控制器一个,还有许多“助手”类 我也有一堆更少的文件,一个“main”包含每个视图的每个更少的文件(例如,如果我有一个UIListView.js,我也有一个UIListView.LESS) 目前,我正在使用MacVim和Less.app,在iPhone/

我正在开发一个Javascript密集型的web应用程序,目前设计用于在iPhone/iPad上运行。它也适用于所有Webkit浏览器(Safari+Chrome)

我有一个自制的MVC框架,由许多JavaScript文件组成:每个视图一个,每个控制器一个,还有许多“助手”类

我也有一堆更少的文件,一个“main”包含每个视图的每个更少的文件(例如,如果我有一个UIListView.js,我也有一个UIListView.LESS)

目前,我正在使用MacVim和Less.app,在iPhone/iPad模拟器、真正的iPhone/iPad以及Safari或Chrome上进行测试,当我真的需要使用开发工具进行“硬核”调试时。我的所有文件都存储在我的
~/Sites/projectX
文件夹中,我使用Mac内置的web服务器浏览该文件夹

这在开发时是可以的,我的index.htm引用了许多小文件,但这并不重要,因为我通过WiFi在我的内部网上

我想实现的是一种更“面向项目”的方法。正如我在Xcode中开发iOS项目一样,我希望使用Xcode满足我的所有开发需求,将所有源文件保存在与
~/Sites
分开的目录中,比如
~/Desktop/projectX
。我希望有两种配置(调试和发布)用于“构建和运行”:

  • “debug”配置只需编译主.less文件(包括所有小的.less文件),将JS+CSS+HTM文件连同所有图形资源一起复制到某个目录(~/Sites/projectX\u debug)。然后根据选择的“子配置”,启动iPhone模拟器、iPad模拟器、Safari或Chrome,清除缓存(通过AppleScript?)并打开index.htm

  • “release”配置将所有JS文件粘合在一起并缩小它们,编译并缩小.less文件,将index.htm更改为仅引用粘合的JS,然后在将所有存档发送到本地目录(~/Sites/projectX_release)或通过sftp发送到我的生产服务器之前,使用pngout/pngcrush/where优化所有PNG

我相信我可以通过使用XCode 4的构建阶段,或者使用GNU makefiles或某种预处理器来实现(如果不是全部的话),但我不知道从哪里开始

是否有人已经有了这种使用Xcode进行Mac/iOS开发以外的工作的设置,但仍然使用大多数IDE传统的“经典”构建阶段/生成文件的概念

(一个可接受的解决方法是简单地创建一个bash脚本来处理这个问题——我已经可以自己管理它了,但我真的很想使用集成的XCode功能,只需按Cmd-R“编译”并在调试模式下运行我的项目)



我将尝试逐步完成你应该做的事情

“debug”配置只需编译main.less文件(该文件 包括所有小的.less文件)

  • 我会创建一个构建规则来处理.less文件,使用脚本来编译它们
将JS+CSS+HTM文件复制到 一些目录(~/Sites/projectX\u debug)以及所有图形 资源。然后根据选择的“子配置”启动 无论是iPhone模拟器、iPad模拟器、Safari还是Chrome, 清除其缓存(通过AppleScript?)并打开index.htm

  • 为此,您只需将文件添加到“构建阶段”部分的复制阶段
  • 您可以在目标的“生成设置”部分设置生成目录(~/Sites/projectX\u debug,如果您愿意)
将所有JS文件粘合在一起并缩小的“release”配置 编译并缩小.less文件,将index.htm更改为 仅参考粘合的JS,然后使用 pngout/pngcrush/在将所有存档发送到本地 目录(~/Sites/projectX\u release)或通过sftp发送到我的产品 服务器

  • 对于此部分,您可能需要创建新目标并添加不同的规则和设置

如果上述内容过于复杂:

  • 编写两个bash脚本
  • 制定两个目标
  • 在每个目标中添加bash脚本作为构建阶段
  • 希望这能有所帮助。

    那时我终于选择了“两个脚本,两个目标”。忘了把你的答案标记为已接受。