2011-11-05 16 views
9

を設定するには、私がこれまで持っているものです:のMakefile:ここでは、環境変数

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 

出力:私は1つの変数を設定した場合/bin/sh: @NODE_PATH=lib: command not found

だけでは正常に動作しています。私は間違って何をしていますか?

答えて

10

「@」は一度だけ使用してください。それは文字列の冒頭に必要なだけですが、それは2回あります。行継続は非常にリテラルであり、あなたの現在のコードが読み取りますNODE_PATH上

 
@NODE_ENV=test @NODE_PATH=lib ./node_modules/.bin/expresso $(TESTFLAGS) $(SPECS) 

「@」をしたくないシェルに渡さなっています。

+0

これは速かったです。ありがとうございました! – 7elephant