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-contriblayer fromhttps://github.com/imyller/meta-nodejs-contrib.git -
Add
meta-nodejs-contriblayer toEXTRALAYERSinbblayers.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 fornpmcalls made indo_configuretaskGRUNT_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 fornpmcalls made indo_configuretaskGULP_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: callbowercommand line utility
BOWER: bower command line utility (default:bower)BOWER_FLAGS: Extra command line arguments forbowercalls 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 installin source directory afterdo_npm_dedupeand 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 installcommand (such as specific package names)BOWER_INSTALL_FLAGS: Extra command line arguments forbowercalls made inbower_installtask
typings is a TypeScript definition manager: typings
typings class defines following functions:
oe_runtypings: calltypingscommand line utility
TYPINGS: bower command line utility (default:typings)TYPINGS_FLAGS: Extra command line arguments fortypingscalls 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 installin source directory afterdo_configureand beforedo_compile
TYPINGS_INSTALL: Parameters fortypings installcommand (such as specific package names)TYPINGS_INSTALL_FLAGS: Extra command line arguments fortypingscalls made intypings_installtask
