0

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

我正在尝试将 api-easy 添加到 这个问题的路径中。

由于我使用的是 Makefile 我有这个:

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

注意:api-easy 取决于 vows

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

4

2 回答 2

0

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

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

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

于 2012-12-05T22:29:54.637 回答
-1

我认为应该这样做:

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

test:
  vows
  @node ./test/tests.js
于 2012-12-05T20:53:06.393 回答