JoaoAntonioMaruti / auto-from-chrome-extension

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Icon

Webpack Boilerplate

A good starting point for using webpack to build stuffs.

Compatibility

Tested on both Windows and macOS, with:

  • Node = 16.15.1
  • Yarn = 3.2.4

Screenshots

HMR

  • Error Overlay and Friendly Error Display

Error Overlay

  • Auto-Reload for Background in Chrome extension development

Background

  • Auto-Reload for Content Scripts in Chrome extension development

Content Script

Features

  • Fully customizable webpack-based building system.
  • Support webpack 5, React 18, TypeScript, Sass, Less, Tailwind CSS, etc.
  • Support Hot Module Replacement (HMR).
  • Support Auto Reload for Background and Content Script in Chrome extension development.
  • Support manifest V3 in Chrome extension development.
  • Support ESLint, stylelint, and Prettier.
  • Support husky, lint-staged, and commitlint.

How to Use

1. Update Configurations

  • Edit webpack.config.js and update the configuration field entry to determine what to be built;
  • Edit utils/env.js and update the configuration field NOT_HOT_RELOAD to determine which entries to be excluded from Hot Module Replacement (HMR);
  • If you are working with Chrome extensions, also:
    • Update configuration field CONTENT_SCRIPT and BACKGROUND to match the entries of Content Scripts and Background respectively.

2. CLI Commands

# Install dependencies
yarn install

# Start dev server
yarn run start

# Build application
yarn run build

# Commit
yarn commit

# Release
yarn release

Hot Module Replacement (HMR)

To use Hot Module Replacement, please place components outside the top-level file. Components in the top-level file will be downgraded to live reload.

Auto-Reload

Remember to keep the DevTool panel of the Background service worker open during development, otherwise Auto-Reload may not work as expected.

See here for more details.

Class Names in CSS-Modules

CSS's naming convention requires the class names to be in kebab-case. However, in JavaScrip, it is not allowed to write style.my-style and only accepts style['my-style'] or style.myStyle. It is not convenient. Therefore, in this boilerplate, the class names in css-modules will be converted from kebab-case to camelCase to allow usages such as style.myStyle.

Credits

About

License:MIT License


Languages

Language:JavaScript 79.9%Language:TypeScript 16.8%Language:Shell 1.4%Language:CSS 1.0%Language:HTML 0.9%