@pinnacle0/webpack-util v0.8.13
@pinnacle0/webpack-util
This project is to provide two helpers, based on webpack:
Following Convention Over Configuration,
we provide two all-in-one tools for webpack development and build.
WebpackServerStarter
new WebpackServerStarter({
projectDirectory: path.join(import.meta.dirname, ".."),
port: 1234,
}).run();- Creates a
webpackcompiler instance (development mode) and runs it withwebpack-dev-server. - Starts a
localhosthttps server in1234port.
WebpackBuilder
new WebpackBuilder({
projectDirectory: path.join(import.meta.dirname, ".."),
}).run();- Checks if the project structure complies to convention described below.
- Checks if source files complies with project
prettier/stylelint/eslintrules. - Run test if supported by
package.jsonscripts. - Creates a
webpackcompiler instance (production mode) and bundle into anindex.htmlwith related CSS/JS/images etc.
Project Tech Stack Requirement
TypeScript/JavaScript
CSS/LESS
eslint
stylelint
prettier
Note: CSS/LESS only website also supported, without any JavaScript.
Project Folder Structure
The following structure can be used for a basic project setup.
<projectDirectory>
├── build/
│ └── dist/
│ (Output directory for build artifacts, content will be
│ overwritten by each build, should be ignored by git)
├── src/
│ ├── index.html
│ │ (HTML entry)
│ └── index.{ts,tsx,js,jsx,less,css}
│ (Main entry)
├── static/
│ (Directory to serve static files, e.g: robots.txt)
├── tsconfig.json
│ (TypeScript config)
├── .eslintrc.js
│ (ESLint config, can be moved to upper directories)
├── prettier.config.js
│ (Prettier config, can be moved to upper directories)
├── stylelint.config.js
│ (Stylelint config, can be moved to upper directories)
└── package.json
(Project manifest file)Monorepo Folder Structure
The following structure can be used for a npm/yarn/pnpm workspace setup.
<workspaceRootDirectory>
├── packages/
│ ├── project1/
│ │ ├── build/dist/
│ │ ├── config/
│ │ │ ├── tsconfig.script.json (extends: "../../../tsconfig.base.json", ...)
│ │ │ ├── tsconfig.src.json (extends: "../../../tsconfig.base.json", ...)
│ │ │ └── tsconfig.test.json (extends: "../../../tsconfig.base.json", ...)
│ │ ├── script/
│ │ │ ├── build.ts
│ │ │ └── start.ts
│ │ ├── src/
│ │ │ ├── index.html
│ │ │ └── index.{ts,tsx,js,jsx,less,css}
│ │ ├── static/
│ │ ├── tsconfig.json (files: [], references: [{path: "config/tsconfig.src.json"}, ...])
│ │ └── package.json
│ └── project2/
│ ├── build/dist/
│ ├── config/
│ │ ├── tsconfig.script.json (extends: "../../../tsconfig.base.json", ...)
│ │ ├── tsconfig.src.json (extends: "../../../tsconfig.base.json", ...)
│ │ └── tsconfig.test.json (extends: "../../../tsconfig.base.json", ...)
│ ├── script/
│ │ ├── build.ts
│ │ └── start.ts
│ ├── src/
│ │ ├── index.html
│ │ └── index.{ts,tsx,js,jsx,less,css}
│ ├── static/
│ ├── tsconfig.json (files: [], references: [{path: "config/tsconfig.src.json"}, ...])
│ └── package.json
├── tsconfig.base.json (Define common options to be extended by other tsconfig files)
├── .eslintrc.js
├── prettier.config.js
├── stylelint.config.js
└── package.json6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
12 months ago
11 months ago
11 months ago
9 months ago
9 months ago
8 months ago
5 months ago
10 months ago
5 months ago
10 months ago
5 months ago
10 months ago
5 months ago
10 months ago
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago