/originate-frontend-lib

Loom origin for creating frontend javascript libraries

Primary LanguageHandlebars

originate-frontend-lib

loom origin for creating bulletproof javascript libraries with isomorphic packaging.

This template is based on this project. Refer to it's documentation for details.

Usage

$ npm install -g loom
# now the originate program is available
$ originate frontend-lib my-lib __my-lib-global-name
$ cd my-lib
$ git init
$ npm install
# ready to go!

If you have hub installed, you can streamline your process like that:

originate frontend-lib my-lib __my-lib-global-name
cd my-lib
git init
npm install
npm run build-all && npm run test
git add . && git commit -am "Initial commit"
hub create
git push origin master

Here is a copy-paste oneliner of the previous commands:

git init; npm i; npm run build-all && npm run test; git add . && git commit -am "Initial commit"; hub create; git push origin master

What's inside?

Some really nice stuff is packed:

  • 6to5 transpiles ES6 code into ES5 code. You write your code using new ES6 syntax!

  • All major and new module formats are supported: AMD, CommonJS, ES6 Modules Almost anyone can use your library in browser and NodeJS!

  • Webpack, RequireJS, Browserify, SystemJS compatible! You should not worry how your module will be bundle

  • Can be used in a browser directly: Webpack build configured to produce a standalone UMD version in dist/standalone.js We got those oldschool guys covered as well.

  • Karma + Jasmine test setup (with CI integration for PhantomJS and Firefox!) You can be sure that your code works as intended.

  • Coverage report generated via istanbul If you like numbers, we have added some stuff.

  • npm, jspm and bower support So that your library can be easily distributed.

  • Pre-commit hook with jshint and fixmyjs You cannot commit bad code and break all things.

  • Out-of-box integration with travis, coveralls and bithound Everything is automated! Get those cool badges!

  • Sane defaults for .editorconfig, .npmignore and .gitignore No rubbish get into the repo

Global Name

The 3rd parameter to originate command is the global name of your library. Global name is the string, which is added to the window object, if your library is used as a standalone <script>.