This OpenEmbedded layer is intended to be used as an extension of meta-nodejs
layer to provide community contributed package recipes and Bitbake helper classes.
meta-nodejs
provides latest Node.js runtime package recipes for current, long-term support, maintenance and legacy release lines.
Community contributions to this layer are welcome!
Layer installation varies depending on your OpenEmbedded distribution. These instructions are generic.
-
Fetch
meta-nodejs-contrib
layer fromhttps://github.com/imyller/meta-nodejs-contrib.git
-
Add
meta-nodejs-contrib
layer toEXTRALAYERS
inbblayers.conf
. For example:EXTRALAYERS +=" \ ${TOPDIR}/sources/meta-nodejs-contrib \ "
meta-nodejs-contrib
depends on following layers:
meta-nodejs-contrib
layer adds few Node.js related helper classes.
grunt
can build a package that is based on grunt.
First it will do an npm install
during the do_configure
task to make sure all
dependencies are available.
Then it runs grunt
with the default target during the do_compile
task.
It defines the following functions:
oe_rungrunt
: callgrunt
NPM_INSTALL_FLAGS
: Extra command line arguments fornpm
calls made indo_configure
taskGRUNT_TARGET
: The grunt target to run. (default: "")
gulp
can build a package that is based on gulp.
First it will do an npm install
during the do_configure
task to make sure all
dependencies are available.
Then it runs gulp
with the default target during the do_compile
task.
The project being built should have a devDependency
on gulp
in its package.json
.
It defines the following functions:
oe_rungulp
: callgulp
NPM_INSTALL_FLAGS
: Extra command line arguments fornpm
calls made indo_configure
taskGULP_TASKS
: The gulp task(s) to run. (default: "")GULP_OPTIONS
: Extra options to pass to gulp (e.g.--production
). (default: "")
bower
is a package manager for web applications front-end dependencies: bower.io
bower
class defines following functions:
oe_runbower
: callbower
command line utility
BOWER
: bower command line utility (default:bower
)BOWER_FLAGS
: Extra command line arguments forbower
calls made byoe_runbower()
BOWER_REGISTRY
: override Bower registry URL
Suppose a web application has front-end dependencies which are listed in the file
bower.json. In this case the web application recipe can auto-install all those
dependencies during yocto build by inheriting bower-install
class.
bower-install
class inherits bower
class and adds following build tasks:
bower_install
: runsbower install
in source directory afterdo_npm_dedupe
and beforedo_install
Note that front-end dependencies are auto-installed into build directory. They have to be
explicitely copied into target image in do_install
or do_install_append
. Here is a
simple example of web application recipe with nodejs and bower dependencies:
SUMMARY = "simple web application with JS front-end dependencies listed in bower.json"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
SRCREV = "${AUTOREV}"
PR = "r0"
PV = "0.0.1+git${SRCPV}"
SRC_URI = "git://webapp.example.org/test.git;branch=master;protocol=ssh"
inherit bower-install
S = "${WORKDIR}/git"
do_install () {
install -d ${D}/www/test/public
cp -r ${S}/bower_components ${D}/www/test/public/
}
BOWER_INSTALL
: Parameters forbower install
command (such as specific package names)BOWER_INSTALL_FLAGS
: Extra command line arguments forbower
calls made inbower_install
task
typings
is a TypeScript definition manager: typings
typings
class defines following functions:
oe_runtypings
: calltypings
command line utility
TYPINGS
: bower command line utility (default:typings
)TYPINGS_FLAGS
: Extra command line arguments fortypings
calls made byoe_runtypings()
Suppose a web application has TypeScript dependencies which are listed in the file
typings.json. In this case the web application recipe can auto-install all those
dependencies during yocto build by inheriting typings-install
class.
typings-install
class inherits typings
class and adds following build tasks:
typings_install
: runstypings install
in source directory afterdo_configure
and beforedo_compile
TYPINGS_INSTALL
: Parameters fortypings install
command (such as specific package names)TYPINGS_INSTALL_FLAGS
: Extra command line arguments fortypings
calls made intypings_install
task