【问题标题】:Setting PATH on Makefile - Node.js在 Makefile 上设置 PATH - Node.js
【发布时间】:2012-12-06 06:29:54
【问题描述】:

我想使用 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?

【问题讨论】:

    标签: node.js path makefile vows


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我认为应该这样做:

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

      【讨论】:

        猜你喜欢
        • 2011-02-15
        • 1970-01-01
        • 2014-10-19
        • 2022-06-21
        • 2013-09-12
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 2018-06-04
        相关资源
        最近更新 更多