[11/21] npm: get npm package name from npm pack

Submitted by Armin Kuster on June 3, 2019, 3:06 p.m. | Patch ID: 161925

Details

Message ID 86c9f25d4535663606326e53c33a8927f79e8f52.1559574291.git.akuster808@gmail.com
State New
Headers show

Commit Message

Armin Kuster June 3, 2019, 3:06 p.m.
From: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>

Fixes [YOCTO #12534]

When using npm packages with exotic names, like "JSONSelect" (with
uppercase) or "@angular/cli" (with at sign and slash), there are three
different names:
  - the recipe name ("jsonselect" or "angular-cli")
  - the npm module name ("JSONSelect" or "@angular/cli")
  - the npm pack name ("JSONSelect" or "angular-cli")

The commit fa9c077068a2acea04389fa2b44eb2e93548fce2 allow to have
different recipe name and npm module name by setting the NPMPN variable.

This commit allows to have yet another npm pack name. The pack filename
is now dynamically retrieved from the 'npm pack' command.

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
---
 meta/classes/npm.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/npm.bbclass b/meta/classes/npm.bbclass
index 6dbae6b..3dd2d13 100644
--- a/meta/classes/npm.bbclass
+++ b/meta/classes/npm.bbclass
@@ -53,8 +53,8 @@  npm_do_install() {
 	# be created in this directory
 	export HOME=${WORKDIR}
 	mkdir -p ${D}${libdir}/node_modules
-	npm pack .
-	npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${NPMPN}-${PV}.tgz
+	local NPM_PACKFILE=$(npm pack .)
+	npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${NPM_PACKFILE}
 	mv ${D}${libdir}/node_modules ${D}${libdir}/node
 	if [ -d ${D}${prefix}/etc ] ; then
 		# This will be empty