RaycastのPrivate Storeで自作拡張を作ってPrivate Storeに公開する
なんだか公式ドキュメントのとおりにやってもうまくいかなかったり、日本語情報もあんまりなかったりするので経緯をメモしていく。
Raycast version 1.56.3
公式ドキュメント: https://developers.raycast.com/teams/getting-started
まずは無料のTeam作成
完成したらOrganizationsから見れるようになる
Organizations の Open Store -> Start Onboardingを押すとセットアップウィザードみたいなのが出てくる
Choose Folder
を押して親ディレクトリを指定する
よく見るとsave as
でディレクトリ名を指定できるようになってるので、ここで指定するのは
development
とかそういうレベルのフォルダでOK
わざわざraycast_private_store
とかのディレクトリを自分で作ってそれを指定すると
raycast_private_store(自分で作ったやつ)/raycast-extensions(自動で作られるやつ)
みたいになって
うっとおしいうえに後続のpublishで変なことになる可能性があるので注意(1敗)
今回はsave as raycast_private_extensions
とした
raycast_private_extensionsは最初からgit initされてるのでそのまま作業を続ける
raycast_private_extensions
の下にgetting-started
が自動で作られる
getting-startedがチュートリアル用の拡張機能っぽい
getting-startedのディレクトリでnpm install && npm run dev
を実行すると、ローカル拡張としてgetting-startedが起動する
さっきのウィンドウでContinue
が押せるようになってるので、押したところ。
公式ドキュメントにはnpm run publish
と記載があるが、Raycast上ではnpx ray publish
を実行せよとのこと
getting-startedのディレクトリでnpx ray publish
してみる
% npx ray publish
error - validate git repository
please commit or discard your uncommited changes first (git commit -a -m 'your changes')
ready - validate owner
error - failed validation extension
さっきのnpm installでpackage-lock.jsonが更新されてるので怒られる。
git add .
git commit -m "initial commit"
もういっちょnpx ray publish
成功するとConfettiがブワっと出てきてPrivateStore公開完了
ここまでがチュートリアル
次は自作の拡張を公開する
自作の拡張を公開するときはraycast_private_extensions
の下に突っ込んでgit add, commitし
npx ray publish
する
したら怒られた
failed running git command 'git push -u origin ext/my_extension', exit status 128
とのこと(my_extensionは自作拡張のディレクトリ名)
なんでpushで怒られてるのかはよくわからないが、いずれにせよ社内共有を考えると必要なので
とりあえずremoteを設定する。
git remote add origin リモートリポジトリのURL
npx ray publish
した結果
こんどはseems like there is nothing new to publish
と怒られる
my_extensionのpackage.jsonを見直したところ、
publicなExtensionを下敷きに作ったときの設定が残っていたので以下の通り修正した
- owner: 作成したOrganizationの
handle
にする。- Raycast -> Organizations -> Edit Organizations -> handle(@hogeと表示されているhogeの部分)
- author: 自分のRaycastユーザ名
- access: public になっていたので項目ごと削除
npx ray publish
して成功!
Raycast -> Store -> Privateで公開できていることを確認!