A good starting point for using webpack to build stuffs.
Tested on both Windows and macOS, with:
Node=16.15.1Yarn=3.2.4
- Hot Module Replacement (HMR) Support
- Error Overlay and Friendly Error Display
- Auto-Reload for Background in Chrome extension development
- Auto-Reload for Content Scripts in Chrome extension development
- 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.
- Edit
webpack.config.jsand update the configuration fieldentryto determine what to be built; - Edit
utils/env.jsand update the configuration fieldNOT_HOT_RELOADto determine which entries to be excluded from Hot Module Replacement (HMR); - If you are working with Chrome extensions, also:
- Update configuration field
CONTENT_SCRIPTandBACKGROUNDto match the entries of Content Scripts and Background respectively.
- Update configuration field
# Install dependencies
yarn install
# Start dev server
yarn run start
# Build application
yarn run build
# Commit
yarn commit
# Release
yarn releaseTo use Hot Module Replacement, please place components outside the top-level file. Components in the top-level file will be downgraded to live 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.
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.



