Modern Frontend Development with Node.js

Book description

Enhance your web development projects by fully leveraging Node.js concepts, tools, and best practices at frontend

Key Features

  • Discover the internals of Node.js, focusing on frontend web development
  • Explore the npm frontend ecosystem, including its tooling, usage, and development processes
  • Learn about key web development concepts such as monorepos or publishing libraries

Book Description

Almost a decade after the release of Node.js, the tooling used by frontend developers is fully embracing this cross-platform JavaScript runtime, which is sadly often limited to server-side web development. This is where this Node.js book comes in, showing you what this popular runtime has to offer and how you can unlock its full potential to create frontend-focused web apps.

You'll begin by learning the basics and internals of Node.js, before discovering how to divide your code into modules and packages. Next, you'll get to grips with the most popular package managers and their uses and find out how to use TypeScript and other JavaScript variants with Node.js. Knowing which tool to use when is crucial, so this book helps you understand all the available state-of-the-art tools in Node.js. You'll interact with linters such as ESLint and formatters such as Prettier. As you advance, you'll become well-versed with the Swiss Army Knife for frontend developers – the bundler. You'll also explore various testing utilities, such as Jest, for code quality verification. Finally, you'll be able to publish your code in reusable packages with ease.

By the end of this web development book, you'll have gained the knowledge to confidently choose the right code structure for your repositories with all that you've learned about monorepos.

What you will learn

  • Develop a frontend application with Node.js-based tools and libraries
  • Use bundlers such as webpack or Vite to create efficient web applications
  • Leverage test runners such as Jest to ship reliable software
  • Organize code repositories to work in close collaboration with other developers and teams
  • Find out how to publish npm packages to simplify code reuse
  • Improve code quality by enabling consistent formatting using Prettier

Who this book is for

This book is for junior and intermediate-level frontend web developers who are looking to leverage the Node.js ecosystem for building frontend solutions. The book requires beginner-level knowledge of JavaScript, HTML, and CSS. Prior experience in using a standard shell (sh) will be beneficial.

Table of contents

  1. Modern Frontend Development with Node.js
  2. Contributors
  3. About the author
  4. About the reviewers
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
    4. Download the example code files
    5. Code in Action
    6. Download the color images
    7. Conventions used
    8. Get in touch
    9. Share your thoughts
    10. Download a free PDF copy of this book
  6. Part 1: Node.js Fundamentals
  7. Chapter 1: Learning about the Internals of Node.js
    1. Technical requirements
    2. Looking at the Node.js architecture in detail
    3. Understanding the event loop
    4. Using Node.js from the command line
    5. CommonJS
    6. Summary
  8. Chapter 2: Dividing Code into Modules and Packages
    1. Technical requirements
    2. Using the ESM standard
    3. Learning the AMD specification
    4. Being universal with UMD
    5. Understanding SystemJS and import maps
    6. Knowing package.json fundamentals
    7. Summary
  9. Chapter 3: Choosing a Package Manager
    1. Technical Requirements
    2. Using npm
    3. Using Yarn
    4. Using pnpm
    5. More alternatives
    6. Summary
  10. Part 2: Tooling
  11. Chapter 4: Using Different Flavors of JavaScript
    1. Technical requirements
    2. Integrating Babel
    3. Using Flow
    4. Using TypeScript
    5. Summary
  12. Chapter 5: Enhancing Code Quality with Linters and Formatters
    1. Technical requirements
    2. Understanding auxiliary tooling
    3. Using ESLint and alternatives
    4. Introducing Stylelint
    5. Setting up Prettier and EditorConfig
    6. Summary
  13. Chapter 6: Building Web Apps with Bundlers
    1. Technical requirements
    2. Understanding bundlers
    3. Comparing available bundlers
    4. Using Webpack
    5. Using esbuild
    6. Using Parcel
    7. Using Vite
    8. Summary
  14. Chapter 7: Improving Reliability with Testing Tools
    1. Technical requirements
    2. Considering the testing pyramid
    3. Comparing test runners versus frameworks
    4. Using the Jest framework
    5. Using the Mocha framework
    6. Using the AVA test runner
    7. Using Playwright for visual tests
    8. Using Cypress for end-to-end testing
    9. Summary
  15. Part 3: Advanced Topics
  16. Chapter 8: Publishing npm Packages
    1. Technical requirements
    2. Publishing to the official registry
    3. Selecting another npm registry via .npmrc
    4. Setting up Verdaccio
    5. Writing isomorphic libraries
    6. Publishing a cross-platform tool
    7. Summary
  17. Chapter 9: Structuring Code in Monorepos
    1. Technical requirements
    2. Understanding monorepos
    3. Using workspaces to implement monorepos
    4. Working with Lerna to manage monorepos
    5. Working with Rush for larger repositories
    6. Integrating Turborepo instead of or with Lerna
    7. Managing a monorepo with Nx to enhance Lerna
    8. Summary
  18. Chapter 10: Integrating Native Code with WebAssembly
    1. Technical requirements
    2. Advantages of using WebAssembly
    3. Running WASM in Node.js
    4. Writing WASM with AssemblyScript
    5. Summary
  19. Chapter 11: Using Alternative Runtimes
    1. Technical requirements
    2. Exploring the Deno runtime
    3. Using Bun for bundling web apps
    4. Summary
    5. Epilogue
  20. Index
    1. Why subscribe?
  21. Other Books You May Enjoy
    1. Packt is searching for authors like you
    2. Share your thoughts
    3. Download a free PDF copy of this book

Product information

  • Title: Modern Frontend Development with Node.js
  • Author(s): Florian Rappl
  • Release date: November 2022
  • Publisher(s): Packt Publishing
  • ISBN: 9781804618295