meta-nodejs
meta-nodejs copied to clipboard
OpenEmbedded layer for latest Node.js releases
meta-nodejs ![](https://github.com/nodejs/nodejs.org/raw/master/static/images/logos/nodejs-new-black.png)
OpenEmbedded layer for latest Node.js releases.
:information_source: 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.
Node.js releases
Dependencies
meta-nodejs
depends on following layers:
Cross-compiling for 32-bit target on 64-bit host
Node.js v7+ ships with V8 v5.5+ that requires native (host) compilation of some internal build tools (mkpeephole
and mksnapshot
).
These internal tools must be built with "bitness" matching the cross-compilation target (eg. 32-bit ARM).
If you encounter build errors related to mkpeephole
or mksnapshot
you most likely need to install appropriate multilib compilers and libraries to to your host system.
Example
Prerequisites for compiling for 32-bit ARM with x86_64 Ubuntu 16.04 Xenial (or newer):
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install g++-multilib libssl-dev:i386 libcrypto++-dev:i386 zlib1g-dev:i386
Available Packages
-
nodejs
-
nodejs-npm
-
nodejs-dtrace
-
nodejs-systemtap
-
nodejs-wafadmin
(only with Node.js0.8
)
Installation
Layer installation varies depending on your OpenEmbedded distribution. These instructions are generic.
-
Fetch
meta-nodejs
layer fromhttps://github.com/imyller/meta-nodejs.git
-
Add
meta-nodejs
layer toEXTRALAYERS
inconf/bblayers.conf
. For example:EXTRALAYERS +=" \ ${TOPDIR}/sources/meta-nodejs \ "
Recommended layers
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.
Usage
Building Node Packages
To build latest stable Node.js package:
bitbake nodejs
Node.js as a dependency
Add Node.js as a dependency in recipe with RDEPENDS
(for runtime) or DEPENDS
(for build):
DEPENDS += " nodejs"
RDEPENDS_${PN} += " nodejs"
npm install
buildable recipes
Inherit npm-install
build task class in your recipe.
Bitbake classes
meta-nodejs
layer adds few Node.js related helper classes.
npm-base
class
npm-base
class defines following functions:
-
oe_runnpm
: call cross-compilingnpm
-
oe_runnpm_native
: call native-compilingnpm
For example:
inherit npm-base
do_install() {
oe_runnpm install # Installs dependencies defined in package.json
}
Variables
-
NPM_FLAGS
: Extra command line arguments fornpm
calls made byoe_runnpm()
-
NPM_ARCH
: Override npm target architecture (defaults toTARGET_ARCH
) -
NPM_REGISTRY
: override npm registry URL
npm-install
class
npm-install
class inherits npm-base
class and adds following build tasks (listed in their run order):
-
npm_install
: runsnpm install
in source directory -
npm_shrinkwrap
: runsnpm shrinkwrap
in source directory -
npm_dedupe
: runsnpm dedupe
in 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"
Variables
-
NPM_INSTALL_FLAGS
: Extra command line arguments fornpm
calls made innpm_install
task -
NPM_INSTALL
: Parameters fornpm install
command (such as specific package names)
npm-install-global
class
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.
Variables
-
NPM_INSTALL_FLAGS
: Extra command line arguments fornpm
calls made indo_install
anddo_configure
task