Loading...
Loading...
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.
npx skill4agent add huozhi/npm-skills npm-library-setuppackage.json"type": "module"exportsmodulenpm init -y"type": "module"package.jsonnpm install -D bunchee vitestsrc/npm run build{
"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"
}
}"type": "module"exportsmodule.jsnpm install -D typescript @types/nodetsconfig.json{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "NodeNext",
"declaration": true,
"strict": true
}
}.d.tsnpm install -D react @types/reactpeerDependencies{
"peerDependencies": {
"react": "*"
}
}exportsmodule.js// 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';.jsmy-package/
├── package.json
├── src/
│ ├── index.js # or index.ts
│ └── helpers.js
├── dist/ # Build output
└── README.mdreferences/examples/