posso ottenere un valore da package.json
con questo:Leggi JSON e assegnare ad un elenco di rendere variabili
LAST_VERSION := $(shell node -p "require('./package.json').version")
Ma cosa succede se ho bisogno di più valori? Come:
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")
È questo l'unico modo? Forse c'è un modo per creare una sorta di elenco.
Quanto dura un 'invocazione node' prendere? Vale la micro-ottimizzazione? Così com'è, sembra abbastanza leggibile, una proprietà che non vorrei sacrificare per uno hackery ottimizzato e offuscato. – Jens
@Jens In effetti, non influisce affatto sulle prestazioni, forse lasciatelo così com'è. –
Se una singola chiamata 'node' potrebbe stampare tutti e quattro gli elementi, avresti il problema di separarli. Poiché 'make' per natura utilizza liste separate da spazi, mi aspetterei che il membro" description "sia problematico poiché la descrizione probabilmente contiene spazi. Dovresti creare un output con un delimitatore speciale (virgola? Punto e virgola?), Con tutti i problemi di escape che ciò comporta. – Jens