Scratch
は基本的にはWeb経由やWindowsストアにあるローカルアプリを使用することで使用するのが一般的です。
アプリ版Scratch
ですが、カスタムのブロックなどを開発したいというときには、この使用用途ではこのような環境を使用するのは難しいかと思います。
そこで、今回はGitHub
に公開されているソースコードからScratch
を起動させる事ができます。ということでまず今回はGitHubに公開されたscratch-gui
を使用して
ローカル環境にScratch
を起動させてみようと思います。
とはいえ、現在使用しているPCでやるのは色々な開発環境もあるため素の状態から始めたほうがいいかなと思います。
ということで今回は以前紹介したWindows Sandbox
を使用して素の状態から開始をしてみようと思います。
WindowsSandboxについて【参考】
Windows SandBoxの環境設定(事前のインストール作業)
Windows Sandbox
は全くの素の状態(ネットワーク接続まではできています)なので、少しだけ開発環境の準備をします。
必要になるのは以下のものでしょうか。
- VisualStudioCode(厳密にはいらない)
- Node.js
- Git
これらをWindows Sandbox
上にインストールしておきます。Windowsでなければこのあたり全く不要かも…
それぞれ以下からダウンロードしてインストールを行います。
VisualStudioCode
Node.js
Git
下記のファイルをダウンロードしてインストールしておきました。
ターミナルでバージョンを確認して以下のようになっています。
scratch-guiのインストール
開発環境準備ができたらscratch-gui
をインストールします。
単にインストールを行うだけをするのであれば以下で良いのですが
> npm install https://github.com/LLK/scratch-gui.git
今後開発するのであれば以下で実行してインストールします。
※公式サイトのGitのコマンドには--depth 1
が入っていませんが、最新のリポジトリだけで良いと思いますので追加しておきます。むしろ入れないとものすごく時間がかかります。
You may want to add --depth=1 to the git clone command because there are some large files in the git repository history.
> cd 【インストールパス】 > git clone --depth 1 https://github.com/LLK/scratch-gui.git > cd scratch-gui > npm install
これでインストールは完了します。
scratch-guiの実行
今回使用しているscratch-gui
はリポジトリ名にはgui
と含まれているのですが実際にはサーバープロセスになるので起動によってブラウザが立ち上がってくることはありません。ブラウザを別途起動してURLを開く必要があります。Windows Sandbox内の環境であればhttp://localhost:8601
を開くことになります。
サーバープロセスは以下のように起動します。
> npm start
ですが、起動すると以下のようなエラーが発生し起動ができません。Node.js
でエラーが出ているような雰囲気なのでバージョンを変えて(バージョンダウンして)再度試してみます。※このとき、Firewallの設定が出た場合には、【アクセスを許可】ボタンをクリックして選択してください。(2回目以降は表示されません)
現在はNode.js v18.14.2
がインストールされているので、これの一つ前のLTSバージョン(Node.js 16.19.1
)に変更します。以下のURLから検索するとNode.js
の過去リリースを使用する事ができます。
最新のNode.jsのLTSをアンインストールして、バージョンダウンを行います。
Node.jsのバージョンダウンが終了したら再度以下を実行して起動を行います。
> npm start
今回はエラーは発生せずにコンソール画面に以下の表示がでていれば起動成功です。
「wdm」: Compiled successfully.
※起動時にFirewallの設定が出た場合には、【アクセスを許可】ボタンをクリックして選択してください。(2回目以降は表示されません)
あとはブラウザを開いて以下にアクセスをします。
また、Windows Sandbox
側のIPアドレスにポート指定を行うことでWindows側からもこの開発環境へアクセスすることができます。
IPアドレスはipconfigコマンドで調べて
IPアドレスとポートを指定することでブラウザ上で起動が行われます。
おわりに
これで、ネットワークを使用しないにScratch
のローカル環境を作成することができました。
あとは、サーバ側の更新を行うことでオリジナルブロックを作成することができるので、その連携についても後日記載してみようと思います。
そちらについては今回のscratch-gui
も使用していますが、サーバープロセス側を別のリポジトリ(scratch-vm
)とリンクすることで使用できるというものです。
今回はNode.js
のバージョンによるエラーが発生してしまったためすんなりと行かなかったという事はありましたが、まあ、これくらいであれば…😂