123456789101112131415161718192021222324252627 |
- # This Makefile offers convience shortcuts into this codebase
- # it functions as a wrapper around the actual npm scripts, collected in `package.json`
- # So instead of typing:
- #
- # $ npm script build:assets
- #
- # you could also type:
- #
- # $ make build-assets
- #
- # Notice that colons (:) are replaced by dashes for Makefile compatibility.
- #
- # The benefits of this wrapper are:
- #
- # - You get to keep the the scripts package.json, which is more portable (Makefiles & Windows are harder to mix)
- # - Offer a polite way into the project for developers coming from different languages (npm scripts is obviously very Node centric)
- # - Profit from better autocomplete (make <TAB><TAB>) than npm currently offers. OSX users will have to install bash-completion (http://davidalger.com/development/bash-completion-on-os-x-with-brew/)
- define npm_script_targets
- TARGETS := $(shell node -e 'for (var k in require("./package.json").scripts) {console.log(k.replace(/:/g, "-"));}')
- $$(TARGETS):
- npm run $(MAKECMDGOALS:-=:)
- .PHONY: $$(TARGETS)
- endef
- $(eval $(call npm_script_targets))
|