This is an introduction to the "How to Write a JavaScript Library" in which the scope of the series is presented. You will learn everything you need to know to create a library for JavaScript: set up the GitHub repo, publish a module to npm, set up a test suite with code coverage reporting (using Karma, Mocha, and Chai), add continuous integration, add ES6 (ES2015) with Babel, configure Webpack, and distribute the library as a "Universal JavaScript" (a.k.a. "Isomorphic JavaScript") module (consumable by both the browser and node).
Again, this series is super important - both to individuals and to the community. I'm sure it will raise awareness for sharing useful pieces of code. What I would have liked to see in this series, and is missing from the syllabus:
Forgot to mention - bower (which would have probably made most of the former comment much shorter :)).
Yes, yes, and yes :-) This is all planned. If you listen to the first lesson, I mention all of this and more :-) There are 10 lessons that will be published soon and I plan to record more. Thanks for the encouragement :-)
For me it was perfect. The focus was not on the code, but on the tools and processes.
Most of these processes are the same, no matter if it is a micro library or a bigtime Angular application. Of course there will be framework-specifics, but that would have derailed the course imho.
This has been (by far) the best course for me on Egghead.
Wow Lars, that's extremely high praise! Thanks! Look forward to more to come on this series :-)
Thanks for this very interesting lesson, I'm currently following it thoroughly as I'm looking to open source a React library and it's so useful !
I setup a webpack / babel workflow to be able to use ES6 features. So i have a src/index.js that is the source of my library and a dist/index.js that is the transpiled ES5 version and the main entry of my package.json .
When building my library (running webpack) should I have the code minified (webpack -p or should I just leave that to users who will import my lib ?
Thanks in advance ! (Sorry if it's noobish :) )
It's an excellent question. It's really up to you. I generally like to have a minified version just to make it easy for people to copy the file if they choose or even use a service like npmcdn and get a minified version.
Hi! I created setup script for my CLI tool based alot on this course and with updated libraries https://github.com/J-Kallunki/jkallunki-scripts