префикс @ при установке переменной окружения в Makefile - PullRequest
13 голосов
/ 05 ноября 2011

Вот что я получил до сих пор:

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

Если я установил только одну переменную, она работает нормально.Что я делаю не так?

1 Ответ

15 голосов
/ 05 ноября 2011

Используйте «@» только один раз. Это нужно только в самом начале строки, но у вас есть это дважды. Продолжения строк очень буквальны, и ваш текущий код выглядит так:

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

'@' в NODE_PATH передается оболочке, которая вам не нужна.

...