Make npm-shrinkwrap optional for normal development but mandatory for releases.

This commit is contained in:
ccd0 2016-04-18 04:39:53 -07:00
parent 915d3b970f
commit dae2c78f83
3 changed files with 26 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
node_modules/ node_modules/
/npm-shrinkwrap.json
*~ *~
*.db *.db
*.DS_Store *.DS_Store

View File

@ -3,6 +3,7 @@ ifdef ComSpec
RMDIR := -rmdir /s /q RMDIR := -rmdir /s /q
RM := -del RM := -del
CP = copy /y $(subst /,\,$<) $(subst /,\,$@) CP = copy /y $(subst /,\,$<) $(subst /,\,$@)
CP2 = copy /y $(subst /,\,$1) $(subst /,\,$2)
MKDIR = -mkdir $(subst /,\,$@) MKDIR = -mkdir $(subst /,\,$@)
ESC_DOLLAR = $$ ESC_DOLLAR = $$
else else
@ -10,12 +11,13 @@ else
RMDIR := rm -rf RMDIR := rm -rf
RM := rm -rf RM := rm -rf
CP = cp $< $@ CP = cp $< $@
CP2 = cp $1 $2
MKDIR = mkdir -p $@ MKDIR = mkdir -p $@
ESC_DOLLAR = \$$ ESC_DOLLAR = \$$
endif endif
npgoals := clean cleanrel cleanweb cleanfull withtests tag $(foreach i,1 2 3 4,bump$(i)) beta stable web update updatehard npgoals := clean cleanrel cleanweb cleanfull withtests tag $(foreach i,1 2 3 4,bump$(i)) beta stable web update updatehard
ifneq "$(filter $(npgoals),$(MAKECMDGOALS))" "" ifneq "$(filter $(npgoals) npm-shrinkwrap.json,$(MAKECMDGOALS))" ""
.NOTPARALLEL : .NOTPARALLEL :
endif endif
@ -97,6 +99,8 @@ all : default release
.events .events2 tmp testbuilds builds : .events .events2 tmp testbuilds builds :
$(MKDIR) $(MKDIR)
ifneq "$(wildcard npm-shrinkwrap.json)" ""
.events/npm : npm-shrinkwrap.json | .events .events/npm : npm-shrinkwrap.json | .events
npm install npm install
echo -> $@ echo -> $@
@ -104,6 +108,13 @@ all : default release
node_modules/%/package.json : .events/npm node_modules/%/package.json : .events/npm
$(if $(wildcard $@),,npm install && echo -> $^) $(if $(wildcard $@),,npm install && echo -> $^)
else
node_modules/%/package.json :
npm install $*
endif
.tests_enabled : .tests_enabled :
echo false> .tests_enabled echo false> .tests_enabled
@ -282,6 +293,7 @@ cleanweb :
cleanfull : clean cleanweb cleanfull : clean cleanweb
$(RMDIR) .events2 dist node_modules $(RMDIR) .events2 dist node_modules
$(RM) npm-shrinkwrap.json
git worktree prune git worktree prune
withtests : withtests :
@ -289,11 +301,21 @@ withtests :
-$(MAKE) -$(MAKE)
echo false> .tests_enabled echo false> .tests_enabled
ifneq "$(wildcard npm-shrinkwrap.json)" ""
tag : .events/CHANGELOG jshint release tag : .events/CHANGELOG jshint release
git commit -am "Release $(name) v$(version)." git commit -am "Release $(name) v$(version)."
git tag -a $(version) -m "$(name) v$(version)." git tag -a $(version) -m "$(name) v$(version)."
else
npm-shrinkwrap.json : src/meta/npm-shrinkwrap.json
$(CP)
endif
$(foreach i,1 2 3 4,bump$(i)) : cleanrel $(foreach i,1 2 3 4,bump$(i)) : cleanrel
$(MAKE) npm-shrinkwrap.json
node tools/bump.js $(subst bump,,$@) node tools/bump.js $(subst bump,,$@)
$(MAKE) all $(MAKE) all
$(MAKE) tag $(MAKE) tag
@ -320,7 +342,9 @@ web : index.html distready
update : update :
npm install --save-dev $(shell node tools/unpinned.js) npm install --save-dev $(shell node tools/unpinned.js)
npm shrinkwrap --dev npm shrinkwrap --dev
$(call CP2,npm-shrinkwrap.json,src/meta/npm-shrinkwrap.json)
updatehard : updatehard :
npm install --save-dev $(shell node tools/unpinned.js latest) npm install --save-dev $(shell node tools/unpinned.js latest)
npm shrinkwrap --dev npm shrinkwrap --dev
$(call CP2,npm-shrinkwrap.json,src/meta/npm-shrinkwrap.json)