mogę uzyskać wartość od package.json
z tym:Czytaj JSON i przypisać do listy sprawiają zmiennych
LAST_VERSION := $(shell node -p "require('./package.json').version")
ale co jeśli trzeba kilka wartości? Na przykład:
PROJECT := $(shell node -p "require('./package.json').name")
LAST_VERSION:= $(shell node -p "require('./package.json').version")
DESCRIPTION := $(shell node -p "require('./package.json').description")
PROJECT_URL := $(shell node -p "require('./package.json').repository.url")
Czy to jedyny sposób? Może istnieje sposób na stworzenie rodzaju listy.
Jak długo 'node' inwokacja wziąć? Czy warto skorzystać z mikrooptymalizacji? Wygląda na to, że jest całkiem czytelny - właściwość, której nie poświęciłbym dla zaciemnionego zoptymalizowanego "make" hackery. – Jens
@Jens Rzeczywiście, nie ma to żadnego wpływu na wydajność, może pozwól na to tak jak jest. –
Jeśli pojedyncze wywołanie 'węzeł' może wydrukować wszystkie cztery elementy, będziesz miał problem z ich oddzieleniem. Ponieważ 'make' by nature używa list rozdzielonych spacjami, oczekiwałbym, że element" description "będzie problematyczny, ponieważ opis prawdopodobnie zawiera spacje. Będziesz musiał utworzyć wyjście ze specjalnym ogranicznikiem (przecinek? Średnik?), Z wszystkimi problemami, które się z tym wiążą. – Jens