- 1. winterjsをローカル(MacOS)にインストールするために試行錯誤したことまとめ
- 2. htmlに生のbinary dataを埋め込むっぽい方法
- 3. Minori5_1.html
- 4. 純粋なJavaScriptで実現するデータバインディング
- 5. Nuxt3で、複数の同一コンポーネント内でほぼ同時にAPIを叩くと結果が同期?された
- 6. Rails + Vue.js:ドキュメントのロード完了後にVueアプリをマウントする方法
- 7. 【JavaScript】オプショナルチェーン(?.)について
- 8. プログラマーが落ち着かなくなるコード書いてみた #2
- 9. 【JavaScript】ErrorをJSON.stringifyする方法
- 10. 【小ネタ】ブラウザで PS4用コントローラー「DUALSHOCK 4」を扱う下準備: WebHID API と WebHID-DS4
- 11. html形式の自己展開書庫
- 12. コメントの削除のあれこれ
- 13. UMD版Hexabase JavaScript SDKを使ってチャットアプリを作る
- 14. Minori5.html
- 15. 【JavaScript】fetchで指定した回数リトライする方法
- 16. base64でエンコードした画像をデコードした後にlaravel上で正しいMIMEを取得する方法
- 17. 同じexpressのプロセスでドメインごとに違うページを表示する
- 18. nuxtでlocalhostをhttpからhttpsにする方法
- 19. nodejsサーバーをsystemdに登録する!
- 20. Docker上で動かしているWebサーバーのログが見たい
winterjsをローカル(MacOS)にインストールするために試行錯誤したことまとめ
注意:この記事の内容の利用は自己責任でお願いします。
## Summary
– winterjsの依存クレートの一つであるmozjsおよびmozjs_sysのコンパイルが通すのが目標。
– 依存しているソフトウェアのインストールを確認すること。pythonは3.11系統だとトラブルことがなかった。## WinterJSって?
RustバインディングされたSpiderMonkey(Mozilla製)を用いたサーバーサイド用JavaScriptエンジン。
HTTPサーバとして用いると最速級らしい。
下の記事を読んだ方が速いです。(本題ではないので省かせてもらいます。)https://zenn.dev/yoshii0110/articles/2ccdc64dfb7f91
## バージョン1.0が発表されたのでローカルで動かしてみたい。
そんな簡単には動かさせてもらえなかった。
公式ではMacOSにインストールする手順が案内されていないので、手探りでやってみる。
WinterJSの公式リポジトリのReadmeによるとRustのパッケージマネージャーcargoのコマンドでインストール
htmlに生のbinary dataを埋め込むっぽい方法
生のbinaryと言うからにはBase64に変換するような生ぬるい方法ではない。**ほぼ**そのまま埋め込むのだ。ほぼとは何ぞ? と思う読者もいるだろう。1つだけ除外しなければならない文字が存在するのだ。それがUnicode番号13、復帰文字という奴だ。
厄介な事にhtmlに記述される文字の中でも復帰文字はUnicode番号10として認識されてしまう。環境にもよるかもしれないが、少なくともWindows Google Chrome、JavaScriptでは `innerText、innerHTML、textContent` で得られる値は10である。そのため別の文字に変換した上でescape文字と組にしなければならない。当然だがescape文字自身もescape文字と組にしなければならない。
単純に `\` でescapeすれば良いという話ではない。そもそもJavaScriptのように `\r` と書いても復帰文字が自動召喚されるわけではない(まあJavaScript側でそういう風に処理すればいいのだが…)。
escape文字に適任なのはbinary data中で最も出現数が少ない文字
Minori5_1.html
“`Minori.html
入力フォーム