10.3.1 JavaScriptコード・ライブラリの読み込み

ウェブアプリ:HTMLで読み込み

Raspberry Pi Zero 版以外の CHIRIMEN はプログラムの起点はHTMLファイルです。(ウェブアプリ)ブラウザはまずHTMLファイルを読み込んだうえで、そこに書かれた内容で動きます。したがって作ったコードや必要なライブラリの読み込みは基本的に全てこのHTMLの中で指定します。(なお、javascript Moduleを有効化している場合は JavaScriptコードの中で jsライブラリを読み込むことがある)

ポイントは <script ...></script> の部分です。 polyfill.js という JavaScript ライブラリを読み込んでいます。これは Web GPIO API と、Web I2C API という W3C でドラフト提案中の 2 つの API への Polyfill (新しい API を未実装のブラウザでも同じコードが書けるようにするためのライブラリ) で、最初に読み込むとそれ以降のコードで GPIO や I2C を操作する JavaScript API が使えるようになります。

次の行にある main.js は、JavaScript のプログラム本体です。

Node.js (CHIRIMEN Raspberry Pi Zero版)

Raspberry Pi Zero版はプログラムの起点が自分が作ったjavascriptコード自体になります。ブラウザの代わりにNode.jsというJavaScriptコードだけを解釈するソフト(JavaScript インタープリタ)にコードを読み込ませて実行します。

CHIRIMEN環境のために必要なライブラリや、I2Cデバイスのドライバ(後述)は次の ECMA Script Module という仕組みを使って読み込みます。

JavaScript Module (ECMA Script Module)

  • ウェブアプリでのModule有効化:HTMLのscript要素でjavascriptを読み込むとき、ttype="module"プロパティを設定する。
    • <script type="module" src="main.js"></script>
  • import文で外部のライブラリを読み込む。
    • import {RelayServer} from "https://chirimen.org/remote-connection/js/beta/RelayServer.js";
  • importされるライブラリ側には、importできるオブジェクトを指定するexport文を記述する。
  • export {RelayServer};
  • 例を見てみる
  • Mozilla Developer Networkの解説