Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornlf <quitlahok@gmail.com>2020-10-29 00:29:20 +0300
committerRuy Adorno <ruyadorno@hotmail.com>2020-10-30 20:30:23 +0300
commitd4119b0d42a3e78212aeb0df04825b3f06982e6b (patch)
tree1515e93e4445e0abedc36d988f963832b128119e /Makefile
parent3b02fcf1d9c2b832832b7dfbbd107fa79534a1e6 (diff)
chore: cleanup makefile
- fix prune target - fix ci build - run rebuild after install PR-URL: https://github.com/npm/cli/pull/2068 Credit: @nlf Close: #2068 Reviewed-by: @ruyadorno
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile107
1 files changed, 33 insertions, 74 deletions
diff --git a/Makefile b/Makefile
index 76880dd22..83046c59a 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ SHELL = bash
PUBLISHTAG = $(shell node scripts/publish-tag.js)
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
-markdowns = $(shell find docs -name '*.md' | grep -v 'index') README.md
+markdowns = $(shell find docs -name '*.md' | grep -v 'index')
# these docs have the @VERSION@ tag in them, so they have to be rebuilt
# whenever the package.json is touched, in case the version changed.
@@ -14,8 +14,7 @@ version_mandocs = $(shell grep -rl '@VERSION@' docs/content \
cli_mandocs = $(shell find docs/content/commands -name '*.md' \
|sed 's|.md|.1|g' \
- |sed 's|docs/content/commands/|man/man1/|g' ) \
- man/man1/npm-README.1
+ |sed 's|docs/content/commands/|man/man1/|g' )
files_mandocs = $(shell find docs/content/configuring-npm -name '*.md' \
|sed 's|.md|.5|g' \
@@ -29,63 +28,29 @@ mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs)
all: docs
-latest:
- @echo "Installing latest published npm"
- @echo "Use 'make install' or 'make link' to install the code"
- @echo "in this folder that you're looking at right now."
- node bin/npm-cli.js install -g -f npm ${NPMOPTS}
-
-install: all
- node bin/npm-cli.js install -g -f ${NPMOPTS} $(shell node bin/npm-cli.js pack | tail -1)
-
-# backwards compat
-dev: install
-
-link: uninstall
- node bin/npm-cli.js link -f
-
-clean: markedclean marked-manclean docs-clean
- rm -rf npmrc
- node bin/npm-cli.js cache clean --force
-
-uninstall:
- node bin/npm-cli.js rm npm -g -f
+docs: mandocs htmldocs
-mandocs: $(mandocs)
+mandocs: dev-deps $(mandocs)
$(version_mandocs): package.json
-htmldocs:
+htmldocs: dev-deps
+ node bin/npm-cli.js rebuild
cd docs && node dockhand.js >&2
-docs: mandocs htmldocs
-
-markedclean:
- rm -rf node_modules/marked node_modules/.bin/marked .building_marked
-
-marked-manclean:
- rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man
+clean: docs-clean gitclean
docsclean: docs-clean
+
docs-clean:
- rm -rf \
- .building_marked \
- .building_marked-man \
- man \
- docs/node_modules \
- docs/output \
- docs/.cache
-
-## build-time tools for the documentation
-build-doc-tools := node_modules/.bin/marked \
- node_modules/.bin/marked-man
-
-# use `npm install marked-man` for this to work.
-man/man1/npm-README.1: README.md scripts/docs-build.js $(build-doc-tools)
- @[ -d man/man1 ] || mkdir -p man/man1
- node scripts/docs-build.js $< $@
+ rm -rf man
-man/man1/%.1: docs/content/commands/%.md scripts/docs-build.js $(build-doc-tools)
+## build-time dependencies for the documentation
+dev-deps:
+ node bin/npm-cli.js install --only=dev --no-audit --ignore-scripts
+
+## targets for man files, these are encouraged to be only built by running `make docs` or `make mandocs`
+man/man1/%.1: docs/content/commands/%.md scripts/docs-build.js
@[ -d man/man1 ] || mkdir -p man/man1
node scripts/docs-build.js $< $@
@@ -95,47 +60,41 @@ man/man5/npm-json.5: man/man5/package.json.5
man/man5/npm-global.5: man/man5/folders.5
cp $< $@
-man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js $(build-doc-tools)
+man/man5/%.5: docs/content/configuring-npm/%.md scripts/docs-build.js
@[ -d man/man5 ] || mkdir -p man/man5
node scripts/docs-build.js $< $@
-man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js $(build-doc-tools)
+man/man7/%.7: docs/content/using-npm/%.md scripts/docs-build.js
@[ -d man/man7 ] || mkdir -p man/man7
node scripts/docs-build.js $< $@
-marked: node_modules/.bin/marked
-
-node_modules/.bin/marked:
- node bin/npm-cli.js install marked --no-global --no-timing --no-save
-
-marked-man: node_modules/.bin/marked-man
-
-node_modules/.bin/marked-man:
- node bin/npm-cli.js install marked-man --no-global --no-timing --no-save
-
-test: docs
+test: dev-deps
node bin/npm-cli.js test
-tag:
- node bin/npm-cli.js tag npm@$(PUBLISHTAG) latest
-
ls-ok:
- node . ls >/dev/null
+ node . ls --production >/dev/null
gitclean:
git clean -fd
-publish: gitclean ls-ok link docs-clean docs
+uninstall:
+ node bin/npm-cli.js rm -g -f npm
+
+link: uninstall
+ node bin/npm-cli.js link -f --ignore-scripts
+
+prune:
+ node bin/npm-cli.js prune --production --no-save --no-audit
+ @[[ "$(shell git status -s)" != "" ]] && echo "ERR: found unpruned files" && exit 1 || echo "git status is clean"
+
+
+publish: gitclean ls-ok link test docs-clean docs prune
@git push origin :v$(shell node bin/npm-cli.js --no-timing -v) 2>&1 || true
git push origin $(BRANCH) &&\
git push origin --tags &&\
node bin/npm-cli.js publish --tag=$(PUBLISHTAG)
-release: gitclean ls-ok markedclean marked-manclean docs-clean docs
- node bin/npm-cli.js prune --production --no-save
+release: gitclean ls-ok docs-clean docs prune
@bash scripts/release.sh
-sandwich:
- @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13)
-
-.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok realclean
+.PHONY: all latest install dev link docs clean uninstall test man docs-clean docsclean release ls-ok dev-deps prune