|
| 1 | +# Mostly lifted from https://andreypopp.com/posts/2013-05-16-makefile-recipes-for-node-js.html |
| 2 | +# Thanks @andreypopp |
| 3 | + |
| 4 | +BIN = ./node_modules/.bin |
| 5 | +SRC = $(wildcard lib/*.js) |
| 6 | +LIB = $(SRC:lib/%.js=dist/%.js) |
| 7 | +MIN = $(SRC:lib/%.js=dist/%.min.js) |
| 8 | + |
| 9 | +.PHONY: test dev |
| 10 | + |
| 11 | +build: $(LIB) $(MIN) |
| 12 | + |
| 13 | +# Allows usage of `make install`, `make link` |
| 14 | +install link: |
| 15 | + @npm $@ |
| 16 | + |
| 17 | +# FIXME |
| 18 | +dist/%.min.js: $(BIN) |
| 19 | + @$(BIN)/uglifyjs dist/react-draggable.js \ |
| 20 | + --output dist/react-draggable.min.js \ |
| 21 | + --source-map dist/react-draggable.min.map \ |
| 22 | + --source-map-url react-draggable.min.map \ |
| 23 | + --in-source-map dist/react-draggable.map \ |
| 24 | + --compress warnings=false |
| 25 | + |
| 26 | +dist/%.js: $(BIN) |
| 27 | + @$(BIN)/webpack --devtool source-map |
| 28 | + |
| 29 | +test: $(BIN) |
| 30 | + @$(BIN)/karma start --browsers Firefox --single-run |
| 31 | + |
| 32 | +dev: $(BIN) |
| 33 | + script/build-watch |
| 34 | + |
| 35 | +node_modules/.bin: install |
| 36 | + |
| 37 | +define release |
| 38 | + VERSION=`node -pe "require('./package.json').version"` && \ |
| 39 | + NEXT_VERSION=`node -pe "require('semver').inc(\"$$VERSION\", '$(1)')"` && \ |
| 40 | + node -e "\ |
| 41 | + ['./package.json', './bower.json'].forEach(function(fileName) {\ |
| 42 | + var j = require(fileName);\ |
| 43 | + j.version = \"$$NEXT_VERSION\";\ |
| 44 | + var s = JSON.stringify(j, null, 2);\ |
| 45 | + require('fs').writeFileSync(fileName, s);\ |
| 46 | + });" && \ |
| 47 | + git add package.json bower.json CHANGELOG.md && \ |
| 48 | + git add -f dist/ && \ |
| 49 | + git commit -m "release v$$NEXT_VERSION" && \ |
| 50 | + git tag "v$$NEXT_VERSION" -m "release v$$NEXT_VERSION" |
| 51 | +endef |
| 52 | + |
| 53 | +release-patch: test build |
| 54 | + @$(call release,patch) |
| 55 | + |
| 56 | +release-minor: test build |
| 57 | + @$(call release,minor) |
| 58 | + |
| 59 | +release-major: test build |
| 60 | + @$(call release,major) |
| 61 | + |
| 62 | +publish: |
| 63 | + git push --tags origin HEAD:master |
| 64 | + npm publish |
0 commit comments