npmでpackageを作る
最近は、JSRを使ったほうが楽かも
例
大まかな流れ
project作成
tsconfig.jsonの設定
package.jsonの設定
普通にプログラムを書く
公開
project作成
$ npm init
$ tsc --init
etc.
tsconfig.jsonの設定
注意する箇所
後で、package.jsonで指定する公開ファイルとの関連を考える
uhyo氏作のpackageとか見るとdefaultのままっぽかった ref 特に拘りがなければそのままにすべし、って感じなんだろうか、よくわからん
そんなことはない気がするが
package.jsonの設定
name
既存のpackageと被ってはいけないので最初にnpmで調べておく必要がある version
main
rootとなるファイル
dist/index.jsとか
types
mainのファイルに対応する型定義ファイルのパスを指定
dist/index.d.tsとか
普通にプログラムを書く
ごにょごにょ
localで使用できる
package側を修正するたびに下記を打ち直さないといけない
package側で
$ npm run build
$ npm pack
project側で
$ npm i path/to/package/hoge-1.0.0.tgz
リリース作業前準備
scripts.prepublishOnlyにpublish前に実行するコマンドを指定しておく
code:package.json
"scripts": {
"prepublishOnly": npm run build
},
公開作業
branchを確認するなどする
誰でログインしてるか確認
scripts.prepublishOnlyで指定したコマンドが実行された後にpublishされる
参考
通常のアプリケーションを作る場合と違う点、注意する点
githubにコードを公開しつつ、npmにはprivateに公開するとかできるのか
やる意味ないか
@hoge/piyoみたいにnamacespaceが付いているlibraryの意味、作り方(?)
packageとして切り出すと、修正が面倒になるがどうすればよいか
いちいちリリースの手順を踏まないといけない?
package内で使っているpackageのversionってどうするのが親切なのか?
要件に合う中で最低のものにすべきなのか?
tree shakingとかの考慮方法
そこまでモチベがないが
jsxはそのまま公開してはいけない
build時に.jsに変換しないといけない
srcは公開する必要がない
.ts系
testは公開する必要がない
わからんことけっこうあったのでめもっておきたい