aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Peugnet <vincent-peugnet@riseup.net>2021-03-04 18:36:59 +0100
committerGitHub <noreply@github.com>2021-03-04 18:36:59 +0100
commit68b526ca04dfa56d608debb7ce29a7c75cff8975 (patch)
tree69f929a128b6fe609639dbb213c455858c9e3d0a
parentfd45c302c76be4d293ff9f166ef063a10d88db87 (diff)
parent09d5322c9a500731d31fef697e247db709b15290 (diff)
downloadwcms-68b526ca04dfa56d608debb7ce29a7c75cff8975.tar.gz
wcms-68b526ca04dfa56d608debb7ce29a7c75cff8975.zip
Merge pull request #132 from n-peugnet/feat/dev-server
feat: add make dev target to run a dev server
-rw-r--r--Makefile26
-rw-r--r--README.md10
2 files changed, 29 insertions, 7 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
diff --git a/README.md b/README.md
index 4d0786e..d81d1f6 100644
--- a/README.md
+++ b/README.md
@@ -114,7 +114,7 @@ Install from sources
make vendor
-3. _Optionnally_ install and build JS dependencies to get UI enhancements.
+3. _Optionally_ install and build JS dependencies to get UI enhancements.
make build
@@ -136,6 +136,10 @@ The build environment can be set either for each `make` command by changing it i
PHP development
---------------
+You can easily run a dev server using the `serve` target:
+
+ make serve
+
There is an error reporting debug mode using [Whoops](https://github.com/filp/whoops). It can be enabled by setting the value of `debug` in `config.json` to one of [editors supported by Whoops](https://github.com/filp/whoops/blob/master/docs/Open%20Files%20In%20An%20Editor.md).
JS development
@@ -145,6 +149,10 @@ While developing JS code it is useful to run webpack in watch mode so that the b
make watch
+To run both the php dev server and webpack in watch mode, it is possible to run:
+
+ make dev
+
Run checks
---------