From 09d5322c9a500731d31fef697e247db709b15290 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Thu, 4 Mar 2021 17:05:16 +0100 Subject: feat: add make dev target to run a dev server this runs both webpack in watch mode and a php dev server with xdebug --- Makefile | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 5cf5b94..acae87e 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,9 @@ override WEBPACK_FLAGS += $(if $(filter $(ENV),dist),-p) override COMPOSER_FLAGS += $(if $(filter $(ENV),dist),--no-dev --prefer-dist) PREV_ENV_FILE := $(build_dir)/prev_env PREV_ENV := $(strip $(shell cat $(PREV_ENV_FILE) 2>/dev/null)) +HOST := localhost +PORT := 8080 +PHP_FLAGS += $(and $(XDEBUG3),-d xdebug.start_with_request=yes) # Files variables. js_sources := $(wildcard $(js_src_dir)/*.js) @@ -35,11 +38,21 @@ dirs := $(phpcs_dir) $(phpunit_dir) # Default target. This executes everything targets needed to get a fully # working development environment. .PHONY: all -all: $(PREV_ENV_FILE) vendor build +all: vendor build # Build generated files. .PHONY: build -build: VERSION $(PREV_ENV_FILE) $(js_bundles) +build: VERSION $(js_bundles) + +.PHONY: dev +dev: ENV := dev +dev: MAKEFLAGS += j2 +dev: + $(MAKE) serve .watch ENV=$(ENV) + +.PHONY: serve +serve: vendor VERSION + php -S $(HOST):$(PORT) -t ./ $(PHP_FLAGS) # Run webpack in watch mode. .PHONY: watch @@ -63,7 +76,7 @@ sentryrelease: $(MAKE) .sentryrelease ENV=$(ENV) .PHONY: .sentryrelease -.sentryrelease: $(PREV_ENV_FILE) build $(js_srcmaps) +.sentryrelease: build $(js_srcmaps) sentry-cli releases new $(GIT_VERSION) sentry-cli releases set-commits $(GIT_VERSION) --auto sentry-cli releases files $(GIT_VERSION) upload-sourcemaps assets/js --url-prefix '~/assets/js' --rewrite @@ -76,7 +89,7 @@ dist: $(MAKE) .dist ENV=$(ENV) .PHONY: .dist -.dist: distclean $(zip_release) $(js_srcmaps) +.dist: distclean $(zip_release) dist/w_cms_%.zip: all @echo Building Zip release... @@ -109,7 +122,7 @@ dist/w_cms_%.zip: all webpack.config.js # Generate the js bundles (and sourcemaps). -assets/js/%.bundle.js assets/js/%.bundle.js.map: $(js_src_dir)/%.js node_modules webpack.config.js +assets/js/%.bundle.js assets/js/%.bundle.js.map: $(js_src_dir)/%.js node_modules webpack.config.js $(PREV_ENV_FILE) @echo Building JS Bundles... mkdir -p $(dir $@) webpack $< -o $@ --env $(ENV) $(WEBPACK_FLAGS) @@ -137,7 +150,7 @@ endif endif # Install PHP dependencies. -vendor: composer.json composer.lock +vendor: $(PREV_ENV_FILE) composer.json composer.lock @echo Installing PHP dependencies... composer install $(COMPOSER_FLAGS) touch $@ @@ -146,6 +159,7 @@ vendor: composer.json composer.lock node_modules: package.json package-lock.json @echo Installing JS dependencies... npm install --loglevel=error --also=dev + touch $@ # Clean files generated by `make all`. .PHONY: clean -- cgit v1.2.3