[OE-core] npm class usage

Brendan Le Foll brendan.le.foll at intel.com
Wed May 4 15:07:32 UTC 2016


On Wed, May 04, 2016 at 11:53:08AM -0300, Fabio Berton wrote:
>    Hi Brendan,
>    Thanks for reply.
>    I'm trying to use npm class with this layer
>    [1]https://github.com/imyller/meta-nodejs
>    For example, I changed this recipe
>    [2]https://github.com/imyller/meta-nodejs/blob/master/recipes/grunt/gru
>    nt-cli_1.1.0.bb to use npm class provided by oe-core and removed all
>    classes from meta-nodejs.

I'm not sure where that npm class is from but it's not the one from
openembedded-core? With that npm.bbclass I'm able to build grunt-cli with a
simple recipe like this:

SUMMARY = "Grunt.js command line wrapper"
HOMEPAGE = "http://gruntjs.com/"
SECTION = "js/devel"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://README.md;md5=a24cc788ab726e615aa5bf0168c5d77d"
SRC_URI = "npm://registry.npmjs.org;name=${PN};version=${PV}"                                                                                                                  
inherit npm 

Does that help? Note the license isn't downloaded by npm so I cheekily took the
README.md for the md5 license check ;-) That probably needs to get fixed, using
the package.json would likely be nicer...

Cheers,
Brendan

>    I can install grunt-cli If I remove S = ${WORKDIR}/npmpkg and
>    --no-registry option.
>    I put PREFERRED_VERSION_nodejs-native on local.conf to set nodejs
>    version and I tried with all versions available on meta-nodejs and
>    meta-oe version, that has patch to enable --no-registry.
>    I'll try with nodejs version that you're using.
> 
>    On Wed, May 4, 2016 at 11:38 AM, Brendan Le Foll
>    <[3]brendan.le.foll at intel.com> wrote:
> 
>      On Tue, May 03, 2016 at 01:24:49PM -0300, Fabio Berton wrote:
>      >    Hi all!
>      >    I'm trying to install some recipes that use npm class and I
>      have two
>      >    questions.
>      >    1 - Why use S = "${WORKDIR}/npmpkg"? This not work for me.
>      That's surprising the fetcher basically extracts it that way so the
>      class just defaults to that location as 'the right thing'. Do you
>      have
>      an example recipe that isn't working that I could take a look at?
>      >    2 - Using option --no-registry inside npm_do_compile task I get
>      this
>      >    error:
>      >    | npm ERR! Registry not defined and registry files not found:
>      >
>      "/home/user/prj/build/tmp/work/all-linux-musleabi/gulp-cli/1.2.1-r0/
>      npm
>      >    _cache/noregistry/wreck/.cache.json",
>      >
>      "/home/user/prj/build/tmp/work/all-linux-musleabi/gulp-cli/1.2.1-r0/
>      npm
>      >    _cache/wreck/.cache.json".
>      >    | npm ERR!
>      >    | npm ERR! If you need help, you may report this error at:
>      >    | npm ERR!     <[1][4]https://github.com/npm/npm/issues>
>      >    | npm ERR! Linux 3.18.0-trunk-amd64
>      >    | npm ERR! argv
>      >    "/home/user/prj/build/tmp/sysroots/x86_64-linux/usr/bin/node"
>      >    "/home/user/prj/build/tmp/sysroots/x86_64-linux/usr/bin/npm"
>      >    "--arch=arm" "--production" "--no-registry" "install"
>      >    | npm ERR! node v4.4.1
>      >    | npm ERR! npm  v2.14.20
>      >    I found this issue [2][5]https://github.com/npm/npm/issues/5509
>      and using
>      >    --cache-min 99999 instead of --no-registry this error doesn't
>      appears
>      >    and build works fine.
>      >    I noticed that nodejs recipe is using this patch
>      >
>      [3][6]https://github.com/bendaaron/meta-oe-dev/commit/3e02a40d689a70
>      025472
>      >    15473a00606d8213ce0c
>      >    but seems not fix for me.
>      So I saw this, and ignored it since --no-registry was working fine
>      for
>      me with that patch and then with 4.2.x. It seems the cache-min
>      option
>      doesn't always work as intented.
>      I fired up a build with 4.4.x from
>      [7]https://github.com/ostroproject/meta-iot-web/blob/master/recipes-
>      devtools/nodejs/nodejs_4.4.1.bb
>      and it seemed to build ok for me with --no-registry.
>      Cheers,
>      Brendan
> 
> References
> 
>    1. https://github.com/imyller/meta-nodejs
>    2. https://github.com/imyller/meta-nodejs/blob/master/recipes/grunt/grunt-cli_1.1.0.bb
>    3. mailto:brendan.le.foll at intel.com
>    4. https://github.com/npm/npm/issues
>    5. https://github.com/npm/npm/issues/5509
>    6. https://github.com/bendaaron/meta-oe-dev/commit/3e02a40d689a70025472
>    7. https://github.com/ostroproject/meta-iot-web/blob/master/recipes-devtools/nodejs/nodejs_4.4.1.bb



More information about the Openembedded-core mailing list