Help us understand the problem. What is going on with this article?

EspruinoでJSを分割して書くときはSprocketsが良いのではないか

More than 5 years have passed since last update.

Espruinoでも多少凝ったものを書こうとするとプログラムが結構な長さになってきますね。そうなるとだんだんJSを分割して書きたくなってくる訳です。「Espruinoで動く」を前提条件にすると、sprocketsなんか良いのではないのかと思いましたので紹介します(今更)

mobule/requireでの分割は何かと面倒

Espruinoではnode.jsのように各機能をモジュールとして記述して、requireで利用することができます。ただしこの方法には制約があり、USB起動の場合はインターネットでアクセスできる場所に、スタンドアロンで利用している場合はSDカードに、各種モジュールファイルを配置しておかなければなりません。汎用で使えるライブラリを記述するのであれば多少目はつむれるかもしれませんが、アプリ固有のビジネスロジック的なものを分割記述するのに、これはなかなか面倒です。

そこで sprockets

と、いうことで分割したJSファイルをビルドして一つにまとめるというアプローチが欲しくなってくる訳ですが、ご存知の通りJSが走るのはEspruinoの上なので、生成されるファイルは可能な限りプレーンなjavascriptであることが望ましいです。

そこで sprocketsです。

//= require "./hoge.js"
var hoge = new Hoge();

JSファイルの上部のようなコメントを記述すると、sprocketsでビルドしたときに、hoge.jsの内容をそっくりそのままもってきてくれます。それでいて、2度以上同じファイルに対する読み込みが記述してあっても一度しか読み込まないのでその辺りも気にせずにすみます。

Example

Githubにサンプルプロジェクトとして上げてみました。READMEを見れば使えるかと思います。build.shには簡単なビルドコマンドが記述してあります。

srcフォルダ直下を常に監視して、変更があったら自動でビルドするようにするステップについては今後書こうかと思っています。

scouty
「あらゆる事象を必然化し、 世の中のミスマッチをなくす」ことをミッションとし、AIヘッドハンティングサービスを開発・運営するスタートアップ
https://lapras.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away