loom origin for creating bulletproof javascript libraries with isomorphic packaging.
This template is based on this project. Refer to it's documentation for details.
$ 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
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
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>
.