在Makefile上设置PATH - Node.js

时间:2012-12-05 20:37:44

标签: node.js path makefile vows

我想使用api-easy来测试我的REST应用。我在package.json中的依赖项中有它,所以当我运行npm install时它安装在./node_modules

我正在尝试将api-easy添加到路径中 this question.

因为我正在使用Makefile,所以我有这个:

test:
    @PATH="./node_modules/api-easy/node_modules/.bin:$PATH"
    @echo $PATH
    vows
    @node ./test/tests.js

注意:api-easy取决于誓言

PATH var未更新,当我执行echo时它返回“ATH”(不是值),然后命令发送未找到。 如何在Makefile中正确设置PATH?

2 个答案:

答案 0 :(得分:0)

make配方中,每个命令都作为单独的进程执行,因此在一个命令中设置环境变量不会影响其他命令。要做你想做的事,你需要确保所有相关命令在shell的单个实例中运行,其中环境变量按照你的预期传递:

test:
    @PATH="./node_modules/api-easy/node_modules/.bin:$$PATH"; \
    echo $$PATH; \
    vows; \
    node ./test/tests.js

尾部反斜杠告诉make将一行与它后面的一行连接起来。另请注意,如果您希望shell解释它们,则需要引用$个字符。因此$$

答案 1 :(得分:-1)

我觉得这样的事情应该这样做:

export PATH="./node_modules/api-easy/node_modules/.bin:$PATH"

test:
  vows
  @node ./test/tests.js