diff options
author | n-peugnet <n.peugnet@free.fr> | 2021-03-04 17:05:16 +0100 |
---|---|---|
committer | n-peugnet <n.peugnet@free.fr> | 2021-03-04 18:33:12 +0100 |
commit | 09d5322c9a500731d31fef697e247db709b15290 (patch) | |
tree | 69f929a128b6fe609639dbb213c455858c9e3d0a | |
parent | fd45c302c76be4d293ff9f166ef063a10d88db87 (diff) | |
download | wcms-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
-rw-r--r-- | Makefile | 26 | ||||
-rw-r--r-- | README.md | 10 |
2 files changed, 29 insertions, 7 deletions
@@ -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 @@ -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 --------- |