Leanpub Header

Skip to main content

SurviveJS - Maintenance

Streamline JavaScript Workflow

Maintenance is a recurring issue in projects. "SurviveJS - Maintenance" discusses the topic from the perspective of JavaScript and discusses common practices you can use to improve your workflow and projects.

Minimum price

$14.99

$14.99

You pay

$14.99

Authors earn

$11.99
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
2,456
Readers
181
Pages
25,695Words
About

About

About the Book

SurviveJS - Maintenance is meant for anyone who has to develop and maintain JavaScript applications or packages.

The purpose of this book is to gather development practices that are particularly useful for anyone who has to maintain JavaScript code or code that compiles to JavaScript.

I, Juho Vepsäläinen, and my co-author Artem Sapegin, have spent years developing npm packages and JavaScript projects. As a result we have gained insight on how to do it and how not to do it. The book combines our experience into a concise format that allows you to improve your development experience.

What Will You Learn

Unless you work on fresh greenfield projects all the time, maintenance concerns are something that will come up fast. The book has been structured into small parts where you learn:

  • How to manage npm packages
  • How to improve code quality
  • How to set up infrastructure for your project
  • How to document the project in a sustainable manner
  • How to plan for the future

In addition, there are small appendices that delve into deeper detail on topics such as monorepos and customizing ESLint.

Author

About the Authors

Juho Vepsäläinen

Juho Vepsäläinen is behind the SurviveJS effort. In addition to being a core developer of webpack, I have been active in the open source scene since the early 2000s. Blue Arrow Awards winner.

Artem Sapegin

Coffee first developer, award-losing photographer, occasional leathercrafter, and dreamer of a boring life. Creator of React Styleguidist.

Contents

Table of Contents

Preface

Introduction

  1. What Will You Learn
  2. How Is the Book Organized
  3. Who Is the Book For
  4. Book Versioning
  5. Getting Support
  6. Additional Material
  7. Acknowledgments
  8. IPackaging

1.Where to Start Packaging

  1. 1.1To Consume Packages or to Develop Them
  2. 1.2Use an Existing Package
  3. 1.3Enhance an Existing Package
  4. 1.4Take Over an Existing Package
  5. 1.5Fork an Existing Package
  6. 1.6Develop Your Own Package
  7. 1.7Consumption Workflow
  8. 1.8Using Private Packages
  9. 1.9Understanding npm Lookup
  10. 1.10Conclusion

2.Anatomy of a Package

  1. 2.1Understanding package.json
  2. 2.2What Files to Publish
  3. 2.3Conclusion

3.Publishing Packages

  1. 3.1Understanding SemVer
  2. 3.2Increasing a Version
  3. 3.3Publishing a Pre-Release Version
  4. 3.4Deprecating, Unpublishing, and Renaming Packages
  5. 3.5Sharing Authorship
  6. 3.6Conclusion

4.Building Packages

  1. 4.1Communicating Where Code Should Work
  2. 4.2Compiling to Support Specific Environments
  3. 4.3Generating a Build on postinstall
  4. 4.4Configuring Babel for Tree Shaking
  5. 4.5Using Other Languages Than JavaScript
  6. 4.6Cross-Platform Concerns
  7. 4.7Conclusion

5.Standalone Builds

  1. 5.1How Bundlers Work
  2. 5.2Universal Module Definition (UMD)
  3. 5.3Generating a Bundle Using Microbundle
  4. 5.4Conclusion

6.Managing Dependencies

  1. 6.1Types of Dependencies
  2. 6.2Keeping Dependencies Updated
  3. 6.3Understanding Version Ranges
  4. 6.4Locking Versions
  5. 6.5Conclusion
  6. IICode Quality

7.Linting

  1. 7.1Why to Lint
  2. 7.2Linting JavaScript With ESLint
  3. 7.3Linting TypeScript With TSLint
  4. 7.4Linting CSS With Stylelint
  5. 7.5Conclusion

8.Code Formatting

  1. 8.1Achieving Code Consistency
  2. 8.2Configuring IDEs and Editors With EditorConfig
  3. 8.3Formatting Code With Prettier
  4. 8.4Formatting CSS With Stylelint
  5. 8.5Conclusion

9.Typing

  1. 9.1The Value of Typing
  2. 9.2Flow
  3. 9.3TypeScript
  4. 9.4The Benefits of Flow and TypeScript
  5. 9.5Type Definitions
  6. 9.6Challenges of Typing
  7. 9.7Conclusion

10.Testing

  1. 10.1What to Verify With Testing
  2. 10.2Develop the Right System the Right Way
  3. 10.3How Much to Test
  4. 10.4How to Test Old Projects Without Tests
  5. 10.5Types of Testing
  6. 10.6Conclusion
  7. IIIInfrastructure

11.Processes

  1. 11.1How to Track Issues
  2. 11.2How to Manage Pull Requests
  3. 11.3How to Design a Development Process
  4. 11.4How to Support Users
  5. 11.5Conclusion

12.Continuous Integration

  1. 12.1Setting up Travis CI
  2. 12.2Conclusion

13.Automation

  1. 13.1Git Commit Messages
  2. 13.2Semantic Release
  3. 13.3Git Hooks
  4. 13.4Automating Linting With lint-staged
  5. 13.5Automating Releases
  6. 13.6gh-lint
  7. 13.7Danger
  8. 13.8Configuration Automation
  9. 13.9Bots
  10. 13.10Conclusion
  11. IVDocumentation

14.README

  1. 14.1What a README Should Contain
  2. 14.2Automating README
  3. 14.3Testing Examples
  4. 14.4Conclusion

15.Change Logs

  1. 15.1Why Not Commit Log
  2. 15.2What Is a Good Change Log
  3. 15.3Conclusion

16.Site

  1. 16.1How to Set up a Site
  2. 16.2Interactive Examples and Demos
  3. 16.3Hosting
  4. 16.4Deployment
  5. 16.5Domain Names
  6. 16.6Search
  7. 16.7Comments
  8. 16.8Testing
  9. 16.9Conclusion

17.API Documentation

  1. 17.1Documenting APIs in Code
  2. 17.2Generating Documentation

18.Other Types of Documentation

  1. 18.1Contribution Guidelines
  2. 18.2Code of Conduct
  3. 18.3Issue and Pull Request Templates

19.Linting and Formatting

  1. 19.1Linting Markdown With Textlint and Proselint
  2. 19.2Formatting Markdown With Prettier
  3. 19.3Conclusion
  4. VFuture

20.Longevity

  1. 20.1Who Is Going to Develop the Project
  2. 20.2Who Is Going to Pay for the Development
  3. 20.3Who Is Going to Make Sure the Project Stays on Track
  4. 20.4What Happens If Developers Disappear From the Project
  5. 20.5How to Attract People to the Project
  6. 20.6How to Keep Track of Everything
  7. 20.7How to Maintain a Popular Project
  8. 20.8Conclusion

21.Marketing

  1. 21.1Marketing Approaches
  2. 21.2Technical Marketing
  3. 21.3Content Marketing
  4. 21.4Word of Mouth
  5. 21.5Conclusion
  6. Appendices

Managing Packages Using a Monorepo

  1. Monorepos - What Are They
  2. Managing Separate Repositories
  3. Conclusion

Customizing ESLint

  1. Speeding up ESLint Execution
  2. Skipping ESLint Rules
  3. Setting Environment
  4. Writing ESLint Plugins
  5. ESLint Resources
  6. Conclusion

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub