forked from xanaawakens/bundle-size-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial commit: Bundle Size Tracker implementation with Webpack, Roll…
…up, and Vite support
- Loading branch information
0 parents
commit 9846468
Showing
29 changed files
with
11,371 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
node-version: [16.x, 18.x, 20.x] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: 'npm' | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Run linter | ||
run: npm run lint | ||
|
||
- name: Run tests | ||
run: npm test | ||
|
||
- name: Build | ||
run: npm run build | ||
|
||
bundle-size: | ||
runs-on: ubuntu-latest | ||
needs: build | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Use Node.js | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18.x' | ||
cache: 'npm' | ||
|
||
- name: Install dependencies | ||
run: npm ci | ||
|
||
- name: Build | ||
run: npm run build | ||
|
||
- name: Check bundle size | ||
run: node dist/cli.js --max-size 500 --output json --dir ./dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Dependencies | ||
node_modules/ | ||
.pnp/ | ||
.pnp.js | ||
|
||
# Production build | ||
dist/ | ||
build/ | ||
lib/ | ||
|
||
# Testing | ||
coverage/ | ||
.nyc_output/ | ||
|
||
# IDE and editors | ||
.idea/ | ||
.vscode/ | ||
*.swp | ||
*.swo | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
# Logs | ||
logs/ | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Runtime data | ||
pids/ | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Test projects output | ||
test-projects/*/dist/ | ||
test-projects/*/bundle-report/ | ||
test-projects/*/report/ | ||
test-projects/*/.cache/ | ||
test-projects/*/node_modules/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variable files | ||
.env | ||
.env.test | ||
.env.production | ||
|
||
# TypeScript cache | ||
*.tsbuildinfo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# Contributing to Bundle Size Tracker | ||
|
||
First off, thank you for considering contributing to Bundle Size Tracker! It's people like you that make Bundle Size Tracker such a great tool. | ||
|
||
## Code of Conduct | ||
|
||
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. | ||
|
||
## How Can I Contribute? | ||
|
||
### Reporting Bugs | ||
|
||
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible: | ||
|
||
* Use a clear and descriptive title | ||
* Describe the exact steps which reproduce the problem | ||
* Provide specific examples to demonstrate the steps | ||
* Describe the behavior you observed after following the steps | ||
* Explain which behavior you expected to see instead and why | ||
* Include screenshots if possible | ||
|
||
### Suggesting Enhancements | ||
|
||
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include: | ||
|
||
* Use a clear and descriptive title | ||
* Provide a step-by-step description of the suggested enhancement | ||
* Provide specific examples to demonstrate the steps | ||
* Describe the current behavior and explain which behavior you expected to see instead | ||
* Explain why this enhancement would be useful | ||
|
||
### Pull Requests | ||
|
||
* Fork the repo and create your branch from `main` | ||
* If you've added code that should be tested, add tests | ||
* Ensure the test suite passes | ||
* Make sure your code lints | ||
* Update the documentation | ||
|
||
## Development Process | ||
|
||
1. Fork the repository | ||
2. Create a new branch: `git checkout -b feature/your-feature-name` | ||
3. Make your changes | ||
4. Run the tests: `npm test` | ||
5. Run the linter: `npm run lint` | ||
6. Commit your changes: `git commit -m 'Add some feature'` | ||
7. Push to the branch: `git push origin feature/your-feature-name` | ||
8. Submit a pull request | ||
|
||
### Development Setup | ||
|
||
```bash | ||
# Clone your fork | ||
git clone https://github.com/avixiii-dev/bundle-size-tracker.git | ||
|
||
# Install dependencies | ||
npm install | ||
|
||
# Build | ||
npm run build | ||
|
||
# Run tests | ||
npm test | ||
``` | ||
|
||
### Project Structure | ||
|
||
``` | ||
bundle-size-tracker/ | ||
├── src/ | ||
│ ├── core/ # Core functionality | ||
│ ├── plugins/ # Build tool plugins | ||
│ ├── types/ # TypeScript types | ||
│ ├── cli.ts # CLI implementation | ||
│ └── index.ts # Main entry point | ||
├── test/ # Test files | ||
├── docs/ # Documentation | ||
└── examples/ # Example implementations | ||
``` | ||
|
||
## Testing | ||
|
||
We use Jest for testing. Please add tests for any new features or bug fixes: | ||
|
||
```bash | ||
# Run all tests | ||
npm test | ||
|
||
# Run tests in watch mode | ||
npm test -- --watch | ||
|
||
# Run tests with coverage | ||
npm test -- --coverage | ||
``` | ||
|
||
## Style Guide | ||
|
||
* We use TypeScript for type safety | ||
* Follow the existing code style | ||
* Use meaningful variable names | ||
* Add comments for complex logic | ||
* Keep functions small and focused | ||
|
||
## Documentation | ||
|
||
* Update the README.md if you change functionality | ||
* Add JSDoc comments for new functions and classes | ||
* Update the type definitions if you change interfaces | ||
|
||
## License | ||
|
||
By contributing, you agree that your contributions will be licensed under the MIT License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2024 Bundle Size Tracker | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
Oops, something went wrong.