npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

my-starter-ts-npm-cli-and-lib

v0.1.3

Published

Typescript で CLI とライブラリの npm パッケージを作成するためのスターター。

Downloads

2

Readme

my-starter-ts-npm-cli-and-lib

TypeScript で npm 用の CLI とライブラリのパッケージを作成するスターター。 CodeSandbox 上でコードを編集し、GitHub Actions から GitHub Packages および npm レジストリーへ publish することを想定している。

利用方法

このリポジトリをテンプレートとして新しいリポジトリを作成する。

  1. $ gh repo create <name> --template https://github.com/hankei6km/my-starter-ts-npm-cli-and-lib で作成
  2. package.jsonLICENSE 等を新しいパッケージにあわせて変更(付録にテンプレート)
  3. $ npm run upgrade-interactive 等でパッケージを更新

作成したリポジトリを CodeSandbox でインポートすると terminal(「yarn start」タブ) 内で start スクリプトが実行される(通常はエラーとなる)。後は必要に応じてコードの編集等を行う。

テストの実行は CodeSandbox 上では npm run csb:test を利用する。コマンドとしての実行を試す場合は npm run start -- foo.txt のように実行する。

CLI 部分の変更

  • コマンド名(スクリプト名)を変更: package.jsonbinsrc/main.tsscriptName を変更。
  • コマンドのフラグ等を変更: src/main.ts を編集。
  • コマンドの処理を変更: src/cli.ts を編集。

ライブラリー部分の変更

src/count.ts src/count.test.ts test/* を削除し、ライブラリのコードを記述。エクスポートしたい項目を src/index.ts へ記述。

npm publish

以下の設定後に GitHub で Release を Publish すると Relase の種類により GitHub Pages または npm レジストリーへ npm publish される。

  • Pre Release: GitHub Pages のみに publish される
  • Release: GitHub Pages および npm レジストリーへ publish される

なお、prepublishOnly 等は定義されていないので、手動で npm publish を実行してもビルドはされないので注意。

設定

  1. GitHub 上でリポジトリの "Settings / Environment" から npm_pkg および gh_pkg を作成
  2. npm_pkg の secrets に NPM_TOKEN を追加(内容は npm レジストリの Access Token)

現状では、gh_pkg への設定変更は行わない。

GitHub Packages へ publish

GitHub で Release を Publish すると npm publish される。このとき、scope はリポジトリの所有者($GITHUB_REPOSITORY の所有者部分)へ置き換えられる。

$ npm version prerelease
$ git push origin
$ gh release create v0.1.2-5 -t 0.1.2-5 --target <branch>

npm レジストリーへ publish

GitHub で Release を Publish すると npm publish される。ただし Pre Release のときは Publish されない。

$ npm version patch
$ git push origin
$ gh release create v0.1.2 -t 0.1.2

ESM 対応

setup-to-native-esm ブランチで ESM 対応を実験的に行っている。

付録

package.json に記述する情報のテンプレート。license を変更したら LICENSE ファイルの変更も忘れずに。

  "name": "<package-name>",
  "version": "0.1.0",
  "description": "<description>",
  "author": "user <mail addr> (website url)",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git://github.com/<user>/<repository>.git"
  },
  "bugs": {
    "url": "https://github.com/<user>/<repository>/issues"
  },
  "keywords": []

参考

ライセンス

MIT License

Copyright (c) 2021 hankei6km