Я хотел бы изменить этот Makefile:Как установить переменную среды в Makefile
SHELL := /bin/bash
PATH := node_modules/.bin:$(PATH)
boot:
@supervisor \
--harmony \
--watch etc,lib \
--extensions js,json \
--no-restart-on error \
lib
test:
NODE_ENV=test mocha \
--harmony \
--reporter spec \
test
clean:
@rm -rf node_modules
.PHONY: test clean
к:
SHELL := /bin/bash
PATH := node_modules/.bin:$(PATH)
boot:
@supervisor \
--harmony \
--watch etc,lib \
--extensions js,json \
--no-restart-on error \
lib
test: NODE_ENV=test
test:
mocha \
--harmony \
--reporter spec \
test
clean:
@rm -rf node_modules
.PHONY: test clean
К сожалению, второй один не работает (процесс узел по-прежнему работает с по умолчанию NODE_ENV
.
Что я пропустил?
У меня ГНУ сделать 3,81, и 'всего: <\n\t> экспорт PROJ_ROOT = $ (CurDir) <\n\t> эхо $ (PROJ_ROOT) <\n>' выводит правильное расширение для первой строки, но только 'echo' для второго , 'PROJ_ROOT' не устанавливается после запуска make. Пробелы вокруг '=' дают «неправильное имя переменной» для экспорта. Наличие первой строки в качестве предпосылки, как в вашем примере, дает «команды начинаются до первой цели» – Gauthier
@ Gauthier да, конечно. Это не то, что я написал. Вы добавили <\n\t> после 'all:', чего нет в моем примере. Мой пример предназначен для использования как написанный: он определяет целевую переменную, _NOT_, добавляя команду к рецепту. Также вы не можете одновременно использовать рецепт и целевую переменную для цели: вам нужно дважды записать цель. См. Второй пример в вопросе и задайте новый вопрос, если это не поможет его объяснить: в комментариях недостаточно места или форматирования. – MadScientist