对于 iPad 应用程序,我需要将一些 CoffeeScript 文件转换为 JavaScript 文件,然后再将它们与应用程序捆绑在一起。
我尝试使用以下代码将 Makefile 添加到我的 XCode 项目中:
MANUAL_ROOT=IOS12BSH/manual
SCRIPTS_ROOT=$(MANUAL_ROOT)/scripts
COFFEE_SOURCES=$(SCRIPTS_ROOT)/*.coffee $(SCRIPTS_ROOT)/guides/*.coffee
JAVASCRIPT_TARGETS=$(COFFEE_SOURCES:.coffee=.js)
all: build
build: coffeescript
clean: clean_coffeescript
coffeescript: $(JAVASCRIPT_TARGETS)
clean_coffeescript:
rm -f $(JAVASCRIPT_TARGETS)
$(JAVASCRIPT_TARGETS): $(COFFEE_SOURCES)
coffee -c $(COFFEE_SOURCES)
从 shell 运行这个 Makefile 没有问题。但是,在我将 Makefile 添加为 XCode 中的目标后,我遇到了问题。
Makefile 产生以下错误:
coffee -c IOS12BSH/manual/scripts/*.coffee IOS12BSH/manual/scripts/guides/*.coffee
/bin/sh: coffee: command not found
make: *** [IOS12BSH/manual/scripts/*.js] Error 127
Command /Applications/Xcode.app/Contents/Developer/usr/bin/make failed with exit code 2
这很奇怪,因为该coffee
命令安装在我的机器上(它安装在/opt/local/bin/coffee
并/opt/local/bin
添加到我$PATH
的 in下~/.profile
)。
所以我在我的 Makefile 中添加了一个,当 Makefile 由 XCode 执行时echo $(PATH)
,它似乎有所不同。$PATH
XCode 似乎没有从中读取设置~/.profile
,因此/opt/local/bin
不在$PATH
.
这是什么原因,我该如何解决这个问题,以便coffee
找到命令?