dzudek / meta-nodejs

OpenEmbedded layer for latest Node.js releases

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

meta-nodejs

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.

Node.js releases

  • Current 7
  • LTS 6
  • LTS 4
  • Maintenance 0.12
  • End of life 0.10
  • End of life 0.8

LTS Schedule

Dependencies

meta-nodejs depends on following layers:

Node.js v7 specific dependencies

Node.js v7 ships with V8 v5.4 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

Available Packages

  • nodejs
  • nodejs-npm
  • nodejs-dtrace
  • nodejs-systemtap
  • nodejs-wafadmin (only with Node.js 0.8)

Installation

Layer installation varies depending on your OpenEmbedded distribution. These instructions are generic.

  1. Fetch meta-nodejs layer from https://github.com/imyller/meta-nodejs.git

  2. Add meta-nodejs layer to EXTRALAYERS in conf/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-compiling npm
  • oe_runnpm_native: call native-compiling npm

For example:

  inherit npm-base

  do_install() {
	oe_runnpm install     # Installs dependencies defined in package.json
  }

Variables

  • NPM_FLAGS: Extra command line arguments for npm calls made by oe_runnpm()
  • NPM_ARCH: Override npm target architecture (defaults to TARGET_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: runs npm install in source directory
  • npm_shrinkwrap: runs npm shrinkwrap in source directory
  • npm_dedupe: runs npm 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 for npm calls made in npm_install task
  • NPM_INSTALL: Parameters for npm 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 for npm calls made in do_install and do_configure task

About

OpenEmbedded layer for latest Node.js releases

License:MIT License


Languages

Language:PHP 86.2%Language:BitBake 12.8%Language:C++ 1.0%