]> code.ossystems Code Review - openembedded-core.git/commitdiff
npm: get npm package name from npm pack
authorJean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Fri, 17 May 2019 15:14:08 +0000 (17:14 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 21 May 2019 11:56:16 +0000 (12:56 +0100)
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>
meta/classes/npm.bbclass

index 6dbae6bc79cd5550c08975eb02fa60c49e27fc0e..3dd2d1380480a3223bdc4490fcb951532a193316 100644 (file)
@@ -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