OpenEmbedded layer for latest Node.js releases.
ℹ️ As an official extension of this layer, installing meta-nodejs-contrib is highly recommended for community contributed Node.js based package recipes and Bitbake helper classes.
meta-nodejs depends on following layers:
Node.js v7 ships with V8 v5.5 that requires native (host) compilation of additional build tools (mkpeephole, mksnapshot).
Building these tools for 32-bit targets (e.g. Arm) also requires 32-bit native toolchain.
In this case, following package should be installed in the build host:
g++-multilib
nodejsnodejs-npmnodejs-dtracenodejs-systemtapnodejs-wafadmin(only with Node.js0.8)
Layer installation varies depending on your OpenEmbedded distribution. These instructions are generic.
-
Fetch
meta-nodejslayer fromhttps://github.com/imyller/meta-nodejs.git -
Add
meta-nodejslayer toEXTRALAYERSinconf/bblayers.conf. For example:EXTRALAYERS +=" \ ${TOPDIR}/sources/meta-nodejs \ "
As an official extension of this layer, installing meta-nodejs-contrib is highly recommended for community contributed Node.js based package recipes and Bitbake helper classes.
To build latest stable Node.js package:
bitbake nodejsAdd Node.js as a dependency in recipe with RDEPENDS (for runtime) or DEPENDS (for build):
DEPENDS += " nodejs"
RDEPENDS_${PN} += " nodejs"Inherit npm-install build task class in your recipe.
meta-nodejs layer adds few Node.js related helper classes.
npm-base class defines following functions:
oe_runnpm: call cross-compilingnpmoe_runnpm_native: call native-compilingnpm
For example:
inherit npm-base
do_install() {
oe_runnpm install # Installs dependencies defined in package.json
}NPM_FLAGS: Extra command line arguments fornpmcalls made byoe_runnpm()NPM_ARCH: Override npm target architecture (defaults toTARGET_ARCH)NPM_REGISTRY: override npm registry URL
npm-install class inherits npm-base class and adds following build tasks (listed in their run order):
npm_install: runsnpm installin source directorynpm_shrinkwrap: runsnpm shrinkwrapin source directorynpm_dedupe: runsnpm dedupein source directory
You can disable one or more of these build tasks in the recipe with do_<taskname>[noexec] = "1":
do_npm_shrinkwrap[noexec] = "1"NPM_INSTALL_FLAGS: Extra command line arguments fornpmcalls made innpm_installtaskNPM_INSTALL: Parameters fornpm installcommand (such as specific package names)
npm-install-global class inherits npm-base class and installs the selected package globally.
This is done in the do_install task of the class.
NPM_INSTALL_FLAGS: Extra command line arguments fornpmcalls made indo_installanddo_configuretask

