From fc1259bf56748ecc604b28578bffd1ef2d82401c Mon Sep 17 00:00:00 2001
From: Refael Ackermann <refack@gmail.com>
Date: Sat, 18 Aug 2018 17:39:06 -0400
Subject: [PATCH] build: use `npm ci`

* remove obsolete `node_modules/js-yaml/package.json` target
* remove `@touch` since `npm ci` is always destructive

PR-URL: https://github.com/nodejs/node/pull/22399
Refs: https://github.com/nodejs/node/pull/21802
Refs: https://github.com/nodejs/node/pull/21490
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Sam Ruby <rubys@intertwingly.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
---
 Makefile    | 9 ++-------
 vcbuild.bat | 2 +-
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index 3ca83bfed85ead..2452244fc25967 100644
--- a/Makefile
+++ b/Makefile
@@ -642,12 +642,8 @@ out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets
 	@cp $< $@
 
 
-run-npm-install = $(PWD)/$(NPM) install --production --no-package-lock
 run-npm-ci = $(PWD)/$(NPM) ci
 
-tools/doc/node_modules/js-yaml/package.json:
-	cd tools/doc && $(call available-node,$(run-npm-install))
-
 gen-api = tools/doc/generate.js --node-version=$(FULLVERSION) \
 		--analytics=$(DOCS_ANALYTICS) $< --output-directory=out/doc/api
 
@@ -1074,8 +1070,7 @@ lint-md-build: tools/remark-cli/node_modules \
 
 tools/doc/node_modules: tools/doc/package.json
 ifeq ($(node_use_openssl),true)
-	cd tools/doc && $(call available-node,$(run-npm-install))
-	@touch $@
+	cd tools/doc && $(call available-node,$(run-npm-ci))
 else
 	@echo "Skipping tools/doc/node_modules (no crypto)"
 endif
@@ -1184,7 +1179,7 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \
 ADDON_DOC_LINT_FLAGS=-whitespace/ending_newline,-build/header_guard
 
 format-cpp-build:
-	cd tools/clang-format && $(call available-node,$(run-npm-install))
+	cd tools/clang-format && $(call available-node,$(run-npm-ci))
 
 format-cpp-clean:
 	$(RM) -r tools/clang-format/node_modules
diff --git a/vcbuild.bat b/vcbuild.bat
index e2f6cfe180c863..fd98867a12a46c 100644
--- a/vcbuild.bat
+++ b/vcbuild.bat
@@ -439,7 +439,7 @@ if not defined doc (
 if exist "tools\doc\node_modules\unified\package.json" goto skip-install-doctools
 SETLOCAL
 cd tools\doc
-%npm_exe% install
+%npm_exe% ci
 cd ..\..
 if errorlevel 1 goto exit
 ENDLOCAL