@@ -36,9 +36,37 @@ ifeq ($(NPM_VERSION), pre-release)
3636 npm_version_prerequisite := npm-version-pre-release
3737endif
3838
39+ # Specify the output build directory when generating an npm gzipped archive:
40+ NPM_TARBALL_BUILD_OUT := $(BUILD_DIR ) /npm
41+
42+ # Specify the gzipped archive basename:
43+ npm_tarball_basename := "stdlib-stdlib-$(shell $(CURRENT_PROJECT_VERSION ) ) .tgz"
44+
45+ # Specify the output npm gzipped archive:
46+ npm_tarball := $(NPM_TARBALL_BUILD_OUT ) /$(npm_tarball_basename )
47+
3948
4049# TARGETS #
4150
51+ # Generate an npm tarball.
52+ #
53+ # This target generates an npm gzipped archive.
54+
55+ $(npm_tarball ) :
56+ $(QUIET ) $(MKDIR_RECURSIVE ) $(NPM_TARBALL_BUILD_OUT )
57+ $(QUIET ) $(NPM_PACK ) $(ROOT_DIR ) > /dev/null
58+ $(QUIET ) mv $(ROOT_DIR ) /$(npm_tarball_basename ) $@
59+
60+
61+ # Generate an npm tarball.
62+ #
63+ # This target generates an npm gzipped archive.
64+
65+ npm-tarball : $(npm_tarball )
66+
67+ .PHONY : npm-tarball
68+
69+
4270# Run pre-version tasks.
4371#
4472# This target runs tasks which should be completed before incrementing the project version.
@@ -144,10 +172,22 @@ npm-post-version:
144172 $(QUIET ) echo ' '
145173 $(QUIET ) echo ' Incremented version and committed changes.'
146174 $(QUIET ) echo ' '
175+ $(QUIET ) echo " Tarball size: $( shell $( MAKE) -f $( this_file) stats-npm-tarball-size) "
176+ $(QUIET ) echo ' '
147177 $(QUIET ) echo ' If okay to publish, run:'
148178 $(QUIET ) echo ' '
149179 $(QUIET ) echo ' $$ make npm-publish'
150180 $(QUIET ) echo " $$ git push origin $( shell $( GIT_BRANCH) ) && git push origin --tags"
151181 $(QUIET ) echo ' '
152182
153183.PHONY : npm-post-version
184+
185+
186+ # Remove npm tarball(s).
187+ #
188+ # This target removes npm gzipped archives.
189+
190+ clean-npm-tarball :
191+ $(QUIET ) -rm -f $(NPM_TARBALL_BUILD_OUT ) /* .tgz
192+
193+ .PHONY : clean-npm-tarball
0 commit comments