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

Jean-Marie LEMETAYER jean-marie.lemetayer at savoirfairelinux.com
Thu Oct 24 15:13:36 UTC 2019


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

> 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?

> 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"

> How would you patch dependencies?

I am not sure that it is managed in the actual implementation. I believe that the interest is limited.

> How would you remove unneeded files (ex. documentation, examples, source
> code)?

I don't. Only the build files are removed (when using addons). It is not possible to know which files should be kept or deleted.

>> License management should be also handled by npm, and if it isn't, then
>> we need to work with the upstream to address it.
> 
> To my knowledge npm don't check license files. It only reads the license
> in the package.json.

You are right, that's also a reason why the license management needs a rework.

Regards,
Jean-Marie


More information about the Openembedded-core mailing list