huozhi/npm-skills/npm-library-setup

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Comprehensive guidance on setting up npm libraries with package.json, with a preference for ES Modules (ESM). Use when setting up npm packages, configuring ESM, TypeScript packages, or React component libraries.

Install

npx vskill@latest install huozhi/npm-skills/npm-library-setup

SKILL.md

npm Library Setup with ESM

This skill provides comprehensive guidance on setting up an npm library with package.json, with a preference for ES Modules (ESM).

Overview

This skill helps you create npm packages that:

  • Use ES Modules (ESM) with "type": "module"
  • Configure modern exports field (no deprecated module field)
  • Use bunchee for zero-config bundling
  • Use vitest for modern testing
  • Support TypeScript and React component libraries

When to Use This Skill

Use when:

  • "Set up an npm package"
  • "Create a new npm library"
  • "Configure package.json for ESM"
  • "Set up a TypeScript npm package"
  • "Create a React component library"

Categories covered:

  • Basic package setup with ESM
  • TypeScript package configuration
  • React component library setup
  • Build configuration with bunchee
  • Testing setup with vitest

Quick Start

  1. Initialize your package:

``bash npm init -y ``

  1. Configure for ESM by adding "type": "module" to package.json
  1. Install build and test tools:

``bash npm install -D bunchee vitest ``

  1. Create your source files in src/ and run npm run build

Essential Configuration

package.json
json
{
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
},
"scripts": {
"build": "bunchee",
"test": "vitest",
"test:run": "vitest run"
},
"engines": {
"node": ">=20"
}
}

Note: Use the oldest currently-maintained LTS version (check Node.js Release Schedule).

Key Principles
  1. ESM-first: Use "type": "module" for pure ESM packages
  2. Modern exports: Use exports field instead of deprecated module field
  3. Zero-config bundling: Bunchee handles most configuration automatically
  4. File extensions: Use explicit .js extensions in imports (even in TypeScript)
  5. Kebab-case files: Use kebab-case for file paths

TypeScript Setup

Install TypeScript and configure:

bash
npm install -D typescript @types/node

Create tsconfig.json:

json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "NodeNext",
"declaration": true,
"strict": true
}
}

Bunchee automatically compiles TypeScript and generates .d.ts files.

React Component Libraries

Install React as dev dependency:

bash
npm install -D react @types/react

Configure peerDependencies:

json
{
"peerDependencies": {
"react": "*"
}
}

Best Practices

  1. ✅ Use exports field (no deprecated module field)
  2. ✅ Use explicit file extensions in imports (.js)
  3. ✅ Use kebab-case for file paths
  4. ✅ Separate runtime dependencies from dev dependencies
  5. ✅ Specify Node.js version using oldest maintained LTS
  6. ✅ Write source in ESM syntax

Common Patterns

ESM Import/Export
javascript
// Named exports
export function greet(name) {
return "Hello, " + name + "!";
}
// Default export
export default class MyLibrary {}
// Import
import { greet } from './module.js';
import MyLibrary from './MyLibrary.js';

Important: Always use .js extension in imports, even in TypeScript files.

File Structure
my-package/
├── package.json
├── src/
│ ├── index.js # or index.ts
│ └── helpers.js
├── dist/ # Build output
└── README.md

References

See references/ directory for detailed guides:

  • Getting Started
  • Package.json Configuration
  • ESM Syntax and Patterns
  • Building and Testing
  • TypeScript Packages
  • React Packages
  • Best Practices

Examples

See examples/ directory for complete working examples:

  • JavaScript ESM package
  • TypeScript ESM package

Additional Resources

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
3
7-day trend score
7

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/huozhi/npm-skills/npm-library-setup/badge)](https://verified-skill.com/skills/huozhi/npm-skills/npm-library-setup)

Something wrong with this skill or its page? Tell us.