From 76aee76beedb1415b31ee4688456ce5193e7b3f5 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 4 Nov 2019 00:14:58 +0100 Subject: perf: make optimizations - run npm and composer only when needed - include .default.env - add watch targets - "make all" builds in dev mode, "make dist" in prod mode --- Makefile | 48 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 7ec0c46..10f96d1 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,26 @@ +include .default.env include .env +ENV ?= dev export + PATH := vendor/bin:node_modules/.bin:$(PATH) GIT_VERSION := $(shell git --no-pager describe --always --tags) js_sources := $(wildcard src/*.js) js_bundles := $(js_sources:src/%.js=assets/js/%.bundle.js) -zip_release := $(GIT_VERSION:%=dist/w_cms_%.zip) +zip_release := dist/w_cms_$(GIT_VERSION).zip + +all: vendor build -all: php_dependencies $(js_bundles) +build: $(js_bundles) + +watch: node_modules + webpack --env dev --watch release: release-it +dist: ENV := prod dist: distclean $(zip_release) dist/w_cms_%.zip: all @@ -34,32 +43,41 @@ dist/w_cms_%.zip: all -x "*test*" \ -x "*docs*" -assets/js/%.bundle.js: src/%.js js_dependencies +assets/js/%.bundle.js: src/%.js node_modules @echo "Building JS Bundles..." mkdir -p $(dir $@) - webpack --env prod +ifeq ($(ENV),prod) + webpack $< -o $@ --env prod -p +else + webpack $< -o $@ --env dev +endif .env: cp .default.env .env -php_dependencies: +vendor: composer.json composer.lock @echo "Installing PHP dependencies..." +ifeq ($(ENV),prod) composer install --no-dev --prefer-dist +else + composer install +endif -php_clean: - @echo "Cleaning PHP..." - rm -rf vendor - -js_dependencies: +node_modules: package.json package-lock.json @echo "Installing JS dependencies..." npm install -js_clean: +clean: buildclean + @echo "Cleaning PHP..." + rm -rf vendor @echo "Cleaning JS..." rm -rf node_modules - rm -rf $(js_bundles) - -clean: php_clean js_clean -distclean: +distclean: buildclean rm -rf dist + +buildclean: + @echo "Cleaning build artifacts..." + rm -rf $(js_bundles) + +.PHONY: all build watch release dist clean distclean buildclean -- cgit v1.2.3 From 0cf9d2cbe9d407884499ef42d2211485d499f627 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 4 Nov 2019 16:27:11 +0100 Subject: feat: set default build ENV in .default.env --- Makefile | 1 - 1 file changed, 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 10f96d1..8477f5a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ include .default.env include .env -ENV ?= dev export PATH := vendor/bin:node_modules/.bin:$(PATH) -- cgit v1.2.3 From 95566ce344bb01ed7541420154e36384cf571104 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 4 Nov 2019 18:06:22 +0100 Subject: fix: npm install warnings - fix repository and licence fields - hide remaining warnings --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 8477f5a..367ef81 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ endif node_modules: package.json package-lock.json @echo "Installing JS dependencies..." - npm install + npm install --loglevel=error clean: buildclean @echo "Cleaning PHP..." -- cgit v1.2.3