我正在运行以下命令makefile
哪些需要改变dir
到特定目标并在那里运行npm install
问题是我能够在输出中看到它将目录(项目/应用程序)打印到正确的目录,但安装(npm install)在上层(项目)上运行,为什么?
例如
当我运行它时,我从 cd $(DIR)/app 看到/Users/i03432/go/src/project/app
现在第二个命令是npm install
我收到错误,id 在项目路径中找不到包 json,这是正确的......它只在app
小路。为什么 CD 不能工作?
它尝试在这里找到它/Users/i03432/go/src/project/package.json
这是 package.json
/Users/i03432/go/src/project/app/package.json
生成文件是
module:
DIR=$(PWD)
@echo $(DIR)
cd $(DIR)/app
npm install
规则中的每个命令都在单个进程(子 shell)中运行。因此,您对环境执行的每个更改都与该特定行相关联。您想将代码片段更改为
cd $(PWD)/app && npm install
该命令在单个子进程中运行,应该会产生所需的结果。请注意,此问题是在定义时发生的DIR
,所以你可能想将其移动几行:
DIR = $(PWD)
module:
cd $(DIR) && npm install
这样,您引用的变量make
提供,并且您不依赖此处的子流程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)