aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorn-peugnet <n.peugnet@free.fr>2021-03-04 17:05:16 +0100
committern-peugnet <n.peugnet@free.fr>2021-03-04 18:33:12 +0100
commit09d5322c9a500731d31fef697e247db709b15290 (patch)
tree69f929a128b6fe609639dbb213c455858c9e3d0a /Makefile
parentfd45c302c76be4d293ff9f166ef063a10d88db87 (diff)
downloadwcms-09d5322c9a500731d31fef697e247db709b15290.tar.gz
wcms-09d5322c9a500731d31fef697e247db709b15290.zip
feat: add make dev target to run a dev server
this runs both webpack in watch mode and a php dev server with xdebug
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile26
1 files changed, 20 insertions, 6 deletions
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