2011-11-05 22 views
9

Aquí es lo que tengo hasta ahora:Makefile: Ajuste variable de entorno

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 

Salida: /bin/sh: @NODE_PATH=lib: command not found

Si fijo sólo una variable que está funcionando bien. ¿Qué estoy haciendo mal?

Respuesta

10

Use '@' una sola vez. Solo se necesita al principio de la cadena, pero la tienes dos veces. Las continuaciones de línea son muy literal, y su código actual lee:

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

El '@' en NODE_PATH es conseguir pasar a la cáscara, lo que no desea.

+0

Eso fue rápido. ¡Gracias! – 7elephant

Cuestiones relacionadas