путь в make-файле не работает - PullRequest
0 голосов
/ 25 июня 2018

Я запускаю следующее makefile который должен изменить dir на конкретную цель и запустить там npm install

Проблема в том, что я смог увидеть в выводе, что он печатает каталог (проект / приложение) в нужный каталог, но установка (установка npm) выполняется на уровне вверх (проект), почему?

Например

Когда я запускаю его, я вижу из cd $ (DIR) / app /Users/i03432/go/src/project/app

Теперь вторая команда npm install

И я получил ошибку, что id не находит пакет json в правильном пути проекта ... он только в пути app. Почему не работает компакт-диск?

попробуй найти здесь /Users/i03432/go/src/project/package.json

и вот пакет.json

/Users/i03432/go/src/project/app/package.json

Makefile -

module:

   DIR=$(PWD)
   @echo $(DIR)
   cd $(DIR)/app
   npm install

1 Ответ

0 голосов
/ 25 июня 2018

Каждая команда в правиле выполняется в одном процессе (под-оболочке). Следовательно, каждое изменение, которое вы выполняете в среде, связано с этой конкретной линией. Вы хотите изменить свой фрагмент на

cd $(PWD)/app && npm install

Эта команда выполняется в одном подпроцессе и должна давать желаемый результат. Обратите внимание, что эта проблема возникает и для определения DIR, поэтому вы можете переместить это на несколько строк вверх:

DIR = $(PWD)

module:
    cd $(DIR) && npm install

Таким образом, вы имеете в виду переменную, которую предоставляет make, и вы здесь не полагаетесь на подпроцессы.

...