Introduction

How to tame the devDependencies of your project?

The popularity of JavaScript and related technologies has exploded. As a result there are now numerous open source projects which rely on the language. JavaScript is widely used for web development and it sees further use beyond the web. The popularity and on-going evolution of the web platform poses a significant maintenance challenge to developers.

The purpose of this book is to give insight into these particular concerns. Even though the focus is open sourced, you will find techniques and ideas that go beyond this.

What Will You Learn#

The book shows you how to organize npm packages and manage them. You will also learn about higher level topics, such as code quality, infrastructure, documentation, and future prospects. A good project is more than the technical implementation. For that reason you should understand what’s beyond the technical side as this knowledge has impact on project longevity and success.

How Is the Book Organized#

The book has been split into a few distinct parts, each of which discusses the topic from a different angle. You can approach them one by one in any order you prefer and pick up techniques and ideas as you go along.

The parts of the book have been designed as follows:

  • Packaging shows how to package your npm projects. You will also learn how to manage your code effectively as you understand ideas like release management and monorepos.
  • Code Quality discusses how to maintain the quality of your project on a high level. You will learn what code quality consists of and how to manage it.
  • Infrastructure shows how to develop support structure around the project and keep it maintainable so that other people can contribute. You will also learn about scaling the project while buying yourself time to continue progressing.
  • Documentation is often overlooked, but it’s a vital aspect for projects that are meant to be consumed by a wider community. The part shows how to achieve this to support the growth of your project.
  • Future and project longevity is important as without thought it’s possible to end up with a failure. To succeed, you have to think about success first and plan carefully.

There’s a short conclusion chapter after the main content that recaps the main points of the book. This contains a checklist that allows you to go through compare your projects with the book’s recommendations.

The appendices cover secondary topics and sometimes dig more deeply into the main ones. You can approach these in any order you wish, depending on your interests.

Who Is the Book For#

If you develop or maintain a web project, be it open source or not, you will have something to learn from this book. It captures aspects related to this particular niche allowing you to develop more effectively.

The book won’t teach you to use a specific language. Instead, it covers higher level topics and shows how they fit together. This higher level knowledge has value, regardless of your technology stack. The focus is on the web and open source, but certain ideas transcend the book despite this.

Book Versioning#

Given this book receives a fair amount of maintenance and improvements, there’s a versioning scheme in place. Release notes for each new version are maintained at the book blog. You can also use GitHub compare tool for this purpose. Example:

https://github.com/survivejs/maintenance-book/compare/v0.9.0...v0.9.18

The page shows you the individual commits that went to the project between the given version range. You can also see the lines that have changed in the book.

The current version of the book is 0.9.18.

Getting Support#

If you run into trouble or have questions related to the content, there are several options:

If you post questions to Stack Overflow, tag them using survivejs. You can use the hashtag #survivejs on Twitter for the same result.

Additional Material#

You can find more related material from the following sources:

Acknowledgments#

This book wouldn’t have been possible without the earlier efforts. Anyone who contributed there deserves my thanks.

Special thanks to Gavin Orland for editing.

Thanks to Simon Lydell, Ryan Stegmann, Oliver Isenrich, Karen Grigoryan, and many others who have contributed direct feedback for this book!

Previous chapter
Preface
Next chapter
Packaging

This book is available through Leanpub. By purchasing the book you support the development of further content.

Need help?