npmでpackageを作る
from npm
最近は、JSRを使ったほうが楽かも
JSRでpackageを作る
例
jotai-decode-form
大まかな流れ
project作成
tsconfig.jsonの設定
package.jsonの設定
普通にプログラムを書く
λ npm pack
公開
project作成
$ npm init
$ tsc --init
etc.
tsconfig.jsonの設定
注意する箇所
outDirでcompile後の出力先を指定する
後で、package.jsonで指定する公開ファイルとの関連を考える
declarationとかdeclarationMapをtrueにすることで.d.tsも生成する
uhyo氏作のpackageとか見るとdefaultのままっぽかった ref
特に拘りがなければそのままにすべし、って感じなんだろうか、よくわからん
そんなことはない気がするが
package.jsonの設定
name
既存のpackageと被ってはいけないので最初にnpmで調べておく必要がある
version
package.jsonのlicence
main
rootとなるファイル
dist/index.jsとか
types
mainのファイルに対応する型定義ファイルのパスを指定
dist/index.d.tsとか
package.jsonのfiles
普通にプログラムを書く
ごにょごにょ
λ npm packでリハをする
localで使用できる
package側を修正するたびに下記を打ち直さないといけない
package側で
$ npm run build
$ npm pack
project側で
$ npm i path/to/package/hoge-1.0.0.tgz
これ、わざわざλ npm pack使わなくても、λ npm linkで良いかも?
リリース作業前準備
scripts.prepublishOnlyにpublish前に実行するコマンドを指定しておく
code:package.json
"scripts": {
"prepublishOnly": npm run build
},
公開作業
branchを確認するなどする
λ npm login
λ npm whoami
誰でログインしてるか確認
λ npm publish
scripts.prepublishOnlyで指定したコマンドが実行された後にpublishされる
GitHub Actionsでnpm publishすると便利
参考
TypeScript で npm パッケージを作る - 30歳からのプログラミング
#??
通常のアプリケーションを作る場合と違う点、注意する点
githubにコードを公開しつつ、npmにはprivateに公開するとかできるのか
やる意味ないか
packageとして切り出すと、修正が面倒になるがどうすればよいか
いちいちリリースの手順を踏まないといけない?
λ npm link
nohoistは関係ある?
package内で使っているpackageのversionってどうするのが親切なのか?
要件に合う中で最低のものにすべきなのか?
tree shakingとかの考慮方法
そこまでモチベがないが
jsxはそのまま公開してはいけない
build時に.jsに変換しないといけない
tsconfigのjsxをreactにすればok?ちがう?
srcは公開する必要がない
.ts系
testは公開する必要がない
https://chat.openai.com/c/a7ba1b17-fc94-470f-a6fd-5c2df1acd83e
わからんことけっこうあったのでめもっておきたい
https://zenn.dev/suin/scraps/9f454023cefb67