aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.default.env3
-rw-r--r--Makefile49
-rw-r--r--README.md8
-rw-r--r--package.json7
4 files changed, 43 insertions, 24 deletions
diff --git a/.default.env b/.default.env
index 7ab2e42..d6692ef 100644
--- a/.default.env
+++ b/.default.env
@@ -1,4 +1,7 @@
# .env
+# Build environment. (prod|dev)
+ENV=dev
+
# GitHub token used by release-it to publish releases
GITHUB_TOKEN= \ No newline at end of file
diff --git a/Makefile b/Makefile
index 7ec0c46..367ef81 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,25 @@
+include .default.env
include .env
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 +42,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
+ npm install --loglevel=error
-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
diff --git a/README.md b/README.md
index 4cd0a6e..817d86a 100644
--- a/README.md
+++ b/README.md
@@ -65,17 +65,19 @@ If you want to contribute to the project.
1. Clone the git repository.
2. Install PHP dependencies.
- composer install
+ make vendor
3. _Optionnally_ install and build JS dependencies to get UI enhancements.
- npm install && npm run build
+ make build
+
+The last two commands can be run at once using only `make`.
## JS development
While developing the JS sources it is useful to run webpack in watch mode so that the bundles get built at each file change. To do so, use the following command:
- npm run watch
+ make watch
## Publish a new release
diff --git a/package.json b/package.json
index 7630362..ad88d1d 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,7 @@
{
"name": "wcms",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
- "watch": "webpack --env dev --watch",
- "build": "webpack --env prod"
- },
+ "repository": "github:vincent-peugnet/wcms",
+ "license": "MIT",
"dependencies": {
"codemirror": "^5.49.0"
},