frivas / fe-fwk-book

Code for the book "Build a frontend framework from scratch", published by Manning. Learn how frontend frameworks work by building your own.

Home Page:http://mng.bz/aM2o

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build a frontend framework from scratch

fe-fwk

Code for the book "Build a web frontend framework (from scratch)," published by Manning and written by myself. In this book, you build a frontend framework yourself to learn how frontend frameworks work.

Cover

📘 Purchase your copy of the book here and start learning today!

Table Of Contents

The first three parts of the book are published by Manning:

The last two are freely available in the repository's Wiki:

  • Part IV—Extra features (🖥 online; coming soon)

  • Part V—Advanced topics (🖥 online; coming soon)

Getting Started

To create an empty project where you can write the code for your framework, you can use the CLI:

$ npx fe-fwk-cli init my-framework-name

Where my-framework-name is the name of your framework. You can alternatively create and configure the project manually, by following the instructions at Appendix A in the book.

The project that you get contains three packages:

  • runtime: the runtime for your framework; the framework itself.
  • compiler: the compiler that transforms HTML templates into JavaScript render functions.
  • loader: the Webpack loader that integrates the compiler with Webpack.

Scripts

The three packages have the same scripts:

  • build: bundles the code into a single ESM file, located at the dist/ folder.
  • lint: lints the code with ESLint.
  • lint:fix: lints the code with ESLint and fixes the errors.
  • test: runs the tests once with Vitest.
  • test:watch: runs the tests in "watch" mode with Vitest.
  • test:coverage: runs the tests and generate a coverage report.

About

Code for the book "Build a frontend framework from scratch", published by Manning. Learn how frontend frameworks work by building your own.

http://mng.bz/aM2o

License:MIT License


Languages

Language:JavaScript 99.6%Language:HTML 0.3%Language:Shell 0.2%