@heiwa4126/hello5
Version:
TypeScript hello world library with dual ES modules/CommonJS support. Features GitHub Actions trusted publishing to npmjs with Sigstore attestation.
135 lines (88 loc) • 3.2 kB
Markdown
# heiwa4126-hello5 (@heiwa4126/hello5)
[](https://www.npmjs.com/package/@heiwa4126/hello5)
[](https://opensource.org/licenses/MIT)
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
TypeScript hello world library with dual ES modules/CommonJS support. Features GitHub Actions trusted publishing to npmjs with Sigstore attestation.
Modified version of [heiwa4126/heiwa4126-hello4](https://github.com/heiwa4126/heiwa4126-hello4) with the following changes:
- ~~Rewritten using [egoist/tsup](https://github.com/egoist/tsup)~~
- Rewritten using [rolldown/tsdown](https://github.com/rolldown/tsdown/)
- Migrated from npm to pnpm
- Extracted scripts/clean-pkg.mjs into a reusable package (@heiwa4126/clean-publish-scripts)
## Installation
```bash
pnpm add @heiwa4126/hello5
# or
npm install @heiwa4126/hello5
```
## Usage
### As a library
#### ES Modules (MJS)
```typescript
import { hello } from "@heiwa4126/hello5";
console.log(hello()); // "Hello!"
```
#### CommonJS (CJS)
```javascript
const { hello } = require("@heiwa4126/hello5");
console.log(hello()); // "Hello!"
```
#### TypeScript
```typescript
import { hello } from "@heiwa4126/hello5";
console.log(hello()); // "Hello!"
```
#### Browser ESM Module Example (CDN)
ESM.sh:
```html
<!DOCTYPE html>
<div id="app">loading...</div>
<script type="module">
import { hello } from "https://esm.sh/@heiwa4126/hello5";
document.getElementById("app").innerText = hello();
</script>
```
Other CDNs:
- jsDelivr - [@heiwa4126/hello5 CDN by jsDelivr - A CDN for npm and GitHub](https://www.jsdelivr.com/package/npm/@heiwa4126/hello5)
- unpkg - <https://app.unpkg.com/@heiwa4126/hello5>
#### Browser Classic Script Example (CDN)
```html
<!DOCTYPE html>
<div id="app">loading...</div>
<script src="https://cdn.jsdelivr.net/npm/@heiwa4126/hello5/dist/index.global.min.js"></script>
<script>
document.getElementById("app").innerText = Heiwa4126Hello5.hello();
</script>
```
### As a CLI tool
After installation, you can use the CLI command:
```console
$ heiwa4126-hello5 -h
Usage: heiwa4126-hello5 [-h|--help] [-v|--version]
Options:
-h, --help Show this help message
-v, --version Show version
$ heiwa4126-hello5
Hello!
```
## Development
```bash
# Install dependencies
pnpm audit
pnpm install
# lint, test, clean, build, pack and smoke test (without publishing)
pnpm run prepublishOnly
```
## Build Output
The project builds to both ES modules and CommonJS formats in a flat structure:
- `dist/` - Both ES modules (`.js`) and CommonJS (`.cjs`) files
## Scripts
- `pnpm run build` - Build both ESM and CJS versions
- `pnpm run test:watch` - Run tests in watch mode
- `pnpm test` - Run tests once
- `pnpm run clean` - Remove build artifacts
## License
MIT
## Note
[NOTE-ja.md](https://github.com/heiwa4126/heiwa4126-hello5/blob/main/NOTE-ja.md) (on GitHub)
これがこのプロジェクトの本体。