springbokjs-library
⚠️ After 9.0.0, springbokjs-library doesn't supports node < 3.1.0
Recommended version: node > 4.1.0 with --es_staging
How to install
yo
With npm install -g yo generator-springbokjs-library
yo springbokjs-library
Without
Install dependencies
npm install --save-dev springbokjs-library && npm install --save babel-runtime
Makefile
:
Edit Browser lib
include node_modules/springbokjs-library/lib-browser.mk
Node 5 lib
include node_modules/springbokjs-library/lib-node5.mk
Node 5 And Browser lib
include node_modules/springbokjs-library/lib-node5-browser.mk
Init your package
make init
# is equals to: make install-config-files install-scripts install-githooks
Perfect !
You can now use make watch
!
How this works
Babel and es6
Write code in es6 in the src
directory, it's then transpiled with babel to lib
.
Use the task make build
or make watch
to transpile the code.
Coding Rules
Eslint and jscs are used to ensure a common coding style. I mostly follow the Airbnb coding style except for this points:
- 4 spaces indentation (instead of 2)
- Maximum line length is 120
- Always use
{ }
to delimit blocks - Don't use
void
- You can declare multiple var one the same line if there are all undefined (
let i, j;
) "
is allowed to escape'
:"'hi'"
is more readable than'\'hi\''
You can check the code by running the task make lint
. With an editor, install the plugins to validate the code as you type !
Documentation
jsdoc allows to document the code and generate the api.
istanbul is used to generate the coverage.
You can generate the documentation with make docs
, a shortcut for make api tests-coverage
Tests
Tests are in the directory tests/src
, transpiled with babel to tests/lib
. Use the task make tests
to run the tests.
Compilation to tests/lib
is done by make build
or make watch
.
Prefer to follow the structure in tests/src
like src
and tests each file.
make
Available tasks with To package manager
install-config-files
: install symbolic links to.jscsrc
,.jshintrc
,.eslintrc
,.babelrc
and.npmignore
install-scripts
: modify package.json to install npm scripts and hooksupdate
: runnpm prune
andnpm install
To code
clean
: removelib
,tests/lib
anddist
directories.build
:clean
the directory, buildsrc
tolib
,tests/src
totests/lib
and thenlint
the codewatch
:clean
then build and watchsrc
andtests/src
directorieslint
: executejshint
(if .jshintrc exists),jscs
andeslint
(if .eslintrc exists)lint-fix
: executejscs -x
tests
: run tests with mocha (execute build/watch before if needed)docs
: runapi
andtests-coverage
api
: generate api with jsdoctests-coverage
: generate coverage documentation
Publish a new version
- npm version patch|minor|major
- npm publish
In the process, this will pre-generate a changelog based on the commits, then open nano so you can adapt it if you want.