ソースコードをDropboxで同期したいが、node_modulesやdistは同期したくない

2024/06/20に公開

こんにちは。村上と言います。普段は音楽を作る仕事をしています。

自分は仕事柄、いろんな場所を飛び回ってプログラミングをする事が多く、使うマシンもMac、Windows、ノートPC、デスクトップとコロコロ変わります。そのため、ソースコードの同期がいつも悩みの種です。職業プログラマーではないので数時間プログラミングして別の仕事して…といった作業の仕方も多く、Gitだけで同期するとコミット履歴がカオスになってしまいます。

そのためソースコードの同期にはDropboxを使ってるのですが、
しかし、そのままだとnode_modulesやdistまで同期されてしまうので、選択的同期や右クリックで「dropbox.com と同期しない」を個別に選択することになります。これがなかなか面倒です。

後者の方法は、Dropboxのクライアントアプリはファイルの隠し属性を書き換えて同期から除外する仕組みのようで、スクリプトを組んで一括でやってしまおうという方も見つけました。

https://qiita.com/mm_sys/items/daacf4899409eb8603bf

これは便利!だけど・・・もうどうせならアプリ化してしまおう、という事で、以下のものを作りました。
https://github.com/Jun-Murakami/dropboxskipper

本当に、指定したフォルダから条件に応じて検索し、属性の付与&解除をするだけの簡単なものです。

本職の方はソースコードをDropboxなんかに入れないと思いますが、
ソースコード以外にも色々使えると思うので、よろしければ自己責任でどうぞ。
(ファイルの内容が書き変わることは無いと思いますが…。)

ちなみに、お勉強も兼ねて初めてWailsで開発してみました。1日開発でしたが、初めてのGOはなかなか扱いやすい言語でスラスラ読めて感心しました。WailsのCLIもモダンで使いやすかったです。
tauriも前に触ったのですが、こちらはやっぱりRustのハードルが高いので、
Electron、tauriに続く第三勢力のデスクトップアプリ開発のフレームワークとしておススメできます。フロントエンド(React+MUI)もバックエンド(GO)もほぼワンコードのシンプルなアプリなので、興味のある方はリポジトリを覗いてみてください。

ではでは。むらかみでした。

Discussion