Skip to content

xarlizard/npm-package-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NPM Package Template πŸ“¦

npm version License: MIT TypeScript CI/CD Coverage

A comprehensive, production-ready TypeScript npm package template with automated publishing, testing, and modern tooling.

⚑ Quick Start: Click "Use this template" above to create your own npm package in seconds!


✨ Features

  • TypeScript Support: Full TypeScript setup with declaration files
  • Modern Build System: Rollup for optimized bundling (ESM + CJS)
  • Automated Testing: Jest with coverage reporting
  • Code Quality: ESLint with TypeScript support
  • Automated Publishing: GitHub Actions for NPM and GitHub Packages
  • Cross-Platform Scripts: PowerShell and Node.js scripts
  • Security: Security policy and vulnerability reporting
  • Documentation: Comprehensive docs and examples
  • Dual Registry Support: Publish to both NPM and GitHub Packages

πŸ“¦ Using This Template

Method 1: Use as GitHub Template

  1. Click "Use this template" button on GitHub
  2. Create your new repository
  3. Clone and customize

Method 2: Clone and Customize

git clone https://github.com/xarlizard/npm-package-template.git my-package
cd my-package
npm install

Method 3: Install as Reference

npm install @xarlizard/npm-package-template --save-dev

ℹ️ Missing files: By donwloading it directly as an npm-package, you will miss out on a lot of files, be sure to check the official github URL to see all available ones!

πŸ“š Repository File Reference

This section explains the purpose of every file and folder in this repository, so you know exactly what each part does.

Root Files

β”œβ”€β”€ .github/workflows/     # GitHub Actions
β”œβ”€β”€ dist/                  # Built files (generated)
β”œβ”€β”€ docs/                  # Documentation files
β”œβ”€β”€ examples/              # Usage examples
β”œβ”€β”€ scripts/               # Build and release scripts
β”‚   β”œβ”€β”€ dev.ps1            # Development tasks (PowerShell)
β”‚   β”œβ”€β”€ release.ps1        # Release script (PowerShell)
β”‚   └── release.js         # Release script (Node.js)
β”œβ”€β”€ src/                   # Source code
β”‚   β”œβ”€β”€ __tests__/         # Test files
β”‚   β”œβ”€β”€ index.ts           # Main entry point
β”‚   β”œβ”€β”€ types.ts           # Type definitions
β”‚   └── utils.ts           # Utility functions
β”œβ”€β”€ templates/             # Template files with blank fields
β”œβ”€β”€ .eslintrc.json         # ESLint configuration.
β”œβ”€β”€ .gitignore             # Git ignore patterns.
β”œβ”€β”€ .npmignore             # Files to exclude from NPM package.
β”œβ”€β”€ .npmrc                 # NPM and GitHub Packages registry configuration.
β”œβ”€β”€ .prettierignore        # Prettier ignore patterns.
β”œβ”€β”€ .prettierrc.json       # Prettier configuration.
β”œβ”€β”€ CHANGELOG.md           # Project change history.
β”œβ”€β”€ CODE_OF_CONDUCT.md     # Contributor Covenant code of conduct.
β”œβ”€β”€ CONTRIBUTING.md        # Contribution guidelines.
β”œβ”€β”€ jest.config.json       # Jest testing configuration.
β”œβ”€β”€ LICENSE                # MIT License.
β”œβ”€β”€ package.json           # NPM package configuration.
β”œβ”€β”€ README.md:             # Main project overview and file reference.
β”œβ”€β”€ rollup.config.js       # Rollup build configuration.
β”œβ”€β”€ SECURITY.md            # Security policy and vulnerability reporting.
└── tsconfig.json          # TypeScript configuration.

Documentation (docs/)

Source Code (src/)

  • index.ts: Main entry point for the package.
  • types.ts: TypeScript types and interfaces.
  • utils.ts: Utility functions.
  • **tests/**: Unit tests for main functions and utilities.

Examples (examples/)

  • README.md: Usage examples overview.
  • basic-usage.js: Node.js usage example.
  • typescript-usage.ts: TypeScript usage example.

Scripts (scripts/)

  • dev.ps1: PowerShell script for development tasks.
  • release.js: Node.js script for automated release.
  • release.ps1: PowerShell script for publishing releases.
  • setup.js: Node.js script for initial setup and validation.

GitHub Configuration (.github/)

  • dependabot.yml: Dependabot configuration.
  • pull_request_template.md: Pull request template.
  • ISSUE_TEMPLATE/: Issue templates for bug reports, documentation, and features.
  • workflows/: GitHub Actions workflows for CI, publishing, and security.

πŸ› οΈ Setup & Customization

See docs/TEMPLATE_SETUP.md for a step-by-step guide to customizing this template for your own package, including updating package.json, configuring secrets, and setting up your code.


🎯 Quick Start Development

# Install dependencies
npm install

# Development with all checks
npm run dev

# Individual tasks
npm run dev:build    # Build only
npm run dev:test     # Test only
npm run dev:lint     # Lint only
npm run dev:typecheck # Type check only

# Testing
npm run test
npm run test:watch
npm run test:coverage

# Building
npm run build

# Releasing
npm run release        # Patch version
npm run release:minor  # Minor version
npm run release:major  # Major version

πŸ”§ Available Scripts

Script Description
npm run build Build the package
npm run test Run tests
npm run test:watch Run tests in watch mode
npm run test:coverage Run tests with coverage
npm run lint Lint code
npm run lint:fix Fix linting issues
npm run typecheck Type check code
npm run dev Run all development tasks
npm run release Release patch version
npm run release:minor Release minor version
npm run release:major Release major version

πŸš€ Publishing

Automated Publishing (Recommended)

  1. Create a GitHub release
  2. GitHub Actions will automatically:
    • Run tests
    • Build the package
    • Publish to NPM
    • Publish to GitHub Packages

Manual Publishing

# Publish to NPM
npm publish

# Publish to GitHub Packages
npm config set @YOUR_USERNAME:registry https://npm.pkg.github.com
npm publish

🀝 Contributing to This Template

We welcome contributions! See CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This template is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

Includes best practices from:

  • TypeScript team recommendations
  • NPM packaging guidelines
  • GitHub Actions community
  • Open source community standards

Happy packaging! πŸ“¦βœ¨

Made with ❀️ by Xarlizard

About

A comprehensive, production-ready TypeScript npm package template with automated publishing, testing, and modern tooling.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •