如何在Makefile中设置环境variables
我想改变这个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
运行。
我错过了什么?
使variables不会被导出到进程调用的环境中…默认情况下。 但是,您可以使用make的导出来强制他们这样做。 更改:
test: NODE_ENV = test
对此:
test: export NODE_ENV = test
(假设你有足够现代版本的GNU make)。
我只需要本地环境variables来调用我的testing命令,下面是一个在bash shell中设置多个环境variables的例子,并且转义make
的美元符号。
SHELL := /bin/bash .PHONY: test tests test tests: PATH=./node_modules/.bin/:$$PATH \ JSCOVERAGE=1 \ nodeunit tests/