xcode - 使用 Xcode 作为 Javascript IDE,可以吗?

标签 xcode ide makefile build-process

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

我有一个自制的 MVC 框架,由许多 JavaScript 文件组成:每个 View 一个,每个 Controller 一个,还有许多“帮助器”类。

我还有一堆 LESS 文件,一个“主”文件包括每个 View 的每个 LESS 文件(例如,如果我有一个 UIListView.js,我也有一个 UIListView.less)。

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

这在开发时没问题,我的index.htm引用了许多小文件,但这并不重要,因为我是通过WiFi连接到内联网的。

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

  • “调试”配置将简单地编译主 .less 文件(包括所有小 .less 文件),将 JS + CSS + HTM 文件复制到某个目录(~/Sites/projectX_debug),与所有图形资源。然后根据所选的“子配置”,启动 iPhone 模拟器、iPad 模拟器、Safari 或 Chrome,清除其缓存(通过 AppleScript?)并打开 index.htm

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

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

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

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

<小时/>

最佳答案

我会尝试逐步完成您应该做的事情...

the "debug" config would simply compile the main .less file (which includes all small .less files),

  • 我会创建一个构建规则来处理 .less 文件,使用脚本来编译它们。

copy the JS + CSS + HTM file over to some directory (~/Sites/projectX_debug), along with all graphic resources. Then depending on the "sub-configuration" chosen, launch either the iPhone Simulator, the iPad Simulator, Safari, or Chrome, clear its cache (via AppleScript?) and open the index.htm

  • 为此,您只需将文件添加到“构建阶段”部分的复制阶段即可。
  • 您可以在目标的“build设置”部分中设置构建目录(~/Sites/projectX_debug,如果您愿意)。

the "release" config that would glue all JS files together and minify them, compile and minify the .less file, change the index.htm to reference only the glued JS, then optimize all PNGs with pngout/pngcrush/whatever before sending all the archive to a local directory (~/Sites/projectX_release) or by sftp to my production server.

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

或者

如果上面太复杂:

  1. 编写两个 bash 脚本。
  2. 设定两个目标。
  3. 将 bash 脚本添加为每个目标中的构建阶段。

希望有帮助。

关于xcode - 使用 Xcode 作为 Javascript IDE,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8203303/

相关文章:

c++ - 与静态库链接时 undefined reference ,但与 src 编译时链接成功

objective-c - XCode 7.3 破坏了 Bridging-Header.h?

xcode - 为什么 SKNode 在 SpriteKit 游戏中对触摸没有反应?

ruby - 无法在更新的 OS X Mavericks 上安装 Ruby

ios - OneSignal iOS SDK 的 Xcode 手动集成失败 - 架构 x86_64 : "_OBJC_CLASS_$_OneSignal" 的 undefined symbol

ide - PhpStorm 模板变量文档

python - Spyder 不检测导入的 python 文件中的更改

ide - 所有团队成员都应该使用相同的 IDE 吗?

c++ - 我的 linux c++ gnu makefile 变量扩展不符合我的预期

makefile - makefile 中的字符串操作