Как установить переменную среды в 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
to:
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 ответа:
Make переменные не экспортируются в среду процессов make вызывает... по умолчанию. Однако вы можете использовать это
export
чтобы заставить их сделать это. Изменение:test: NODE_ENV = test
для этого:
test: export NODE_ENV = test
(предполагая, что у вас есть достаточно современная версия GNU make).
как MadScientist указал, вы можете экспортировать отдельные переменные:
export MY_VAR = foo
вы также можете указать
.EXPORT_ALL_VARIABLES
цель-вы угадали!- ЭКСПОРТИРУЙТЕ ВСЕ ВЕЩИ!!!:.EXPORT_ALL_VARIABLES: MY_VAR = foo test: @echo $$MY_VAR
посмотреть .EXPORT_ALL_VARIABLES