[OE-core] [RFC][PATCH 0/6] NPM refactoring

Stefan Herbrechtsmeier stefan at herbrechtsmeier.net
Thu Oct 24 17:03:52 UTC 2019


Hi Jean-Marie,

Am 24.10.19 um 17:13 schrieb Jean-Marie LEMETAYER:
> Hi Stefan,
> 
> On Oct 24, 2019, at 2:40 PM, Stefan Herbrechtsmeier stefan at herbrechtsmeier.net wrote:
>> Fist we should use 'npm ci' instead of 'npm install'.
> 
> Thanks for the tips, I did not know about the 'npm ci' command. Sadly it fails to handle '--global' installation. The 'npm pack && npm install' trick is much more efficient as explain in this commit:
>    https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=d38e1e2c2ea4646b34ea6282d3d7620df5b0374b

Okay.

> 
>> How would you handle prebuild binaries? Would you disable prebuild binaries?
> 
> I have no case of using prebuild binaries. Can you give me an example of a package using prebuild?

The pouchdb package have some dependencies with prebuild binaries.

> 
>> How would you handle native packages (ex. angular-cli)?
> 
> Like this (this a part of the next patchset to support angular):
> 
>    $ cat meta-oe/recipes-devtools/angular-cli/angular-cli_8.3.12.bb
>    SUMMARY = "CLI tool for Angular"
>    HOMEPAGE = "https://github.com/angular/angular-cli"
>    LICENSE = "MIT"
>    LIC_FILES_CHKSUM = "file://LICENSE;md5=dc2a37e472c366af2a7b8bd0f2ba5af4"
>    SRC_URI = "npm://registry.npmjs.org;name=@angular/cli;version=${PV}"
>    S = "${WORKDIR}/npm"
>    inherit npm
>    NPM_SHRINKWRAP = "${THISDIR}/${BPN}/npm-shrinkwrap.json"
>    BBCLASSEXTEND = "native"

You don't set the SRC_URI checksum? How you ensure that the server 
didn't change the package?

How you use this package and how you handle other dependencies? How you 
build an angular application?

>> How would you patch dependencies?
> 
> I am not sure that it is managed in the actual implementation. I believe that the interest is limited.

This is needed if you use packages with c code.

Regards
   Stefan



More information about the Openembedded-core mailing list