这是我到目前为止所得到的:
SPECS = $(shell find spec -iname "*_spec.js")
spec:
@NODE_ENV=test \
@NODE_PATH=lib \
./node_modules/.bin/expresso \
$(TESTFLAGS) \
$(SPECS)
cov:
@TESTFLAGS=--cov $(MAKE) spec
.PHONY: spec cov
输出:/bin/sh: @NODE_PATH=lib: command not found
如果我设置一个变量,它只能正常工作。我做错了什么?
答案 0 :(得分:15)
仅使用'@'一次。它只需要在字符串的最开头,但你有两次。行继续是非常文字的,您当前的代码是:
@NODE_ENV=test @NODE_PATH=lib ./node_modules/.bin/expresso $(TESTFLAGS) $(SPECS)
NODE_PATH上的'@'传递给你不想要的shell。