使えるシステムから使いたいシステムへ、有限会社アテージ

RequireJSには、JSファイル以外の依存関係を扱うためにloader pluginという仕組みが用意されています。loader pluginの一覧はこちらにあります。自作も可能で、その方法はこちらに詳しく書かれています。

今回は、既存のpluginを用いてその使い方を紹介します。

前回作成したプロジェクトを引き続き利用します。

text plugin

まずは、text pluginを使ってpluginの置き場所などを説明します。これは、指定したファイルを読み込んで文字列として使用するためのpluginです。

こちらからtext.jsをダウンロードしてbaseUrlの下に置きます。それ以外の場所に置く場合は、pathsでその場所を指定します。ここでは、baseUrlはjsで、js/lib/requirejsの下に置きましたので、main.jsにtext.jsのパスを追加します。

main.js

js/app/gamma.txtというファイルを作ります。

gamma.txt

ディレクト構成は以下の通りで、前回から追加したのはgamma.txtのみです。

これでtext pluginを使う準備ができました。

main.jsを以下のように変更します。

main.js

bodyの中にgamma.txtの内容がappendされることが確認できればOKです。

i18n plugin

国際化対応のpluginです。

js/appの下につぎのようにファイルを作ります。追加したのは、lamps.jsとnls以下です。

nlsの下は翻訳用のファイルで、nlsの下にfr-fr、ja-jpなどlocaleごとにディレクトリを作ってその下にそれぞれpo.jsを置きます。置き換え前の文字列と置き換え後の文字列をbefore:afterの形で書き下します。指定したlocale用のpo.jsがない場合は、nls直下(root)のpo.jsが使われます。注意する点は、rootのpo.jsに使用可能なlocaleを記述することです。

nls/po.js

nls/ja-jp/po.js

lamps.jsはpo.jsを呼び出して使用する関数定義です。

jp/lamps.js

main.jsを以下の以下のように編集すれば、ja-jp配下のpo.jsが使われ、「The name for alpha in this location is: アルファ」と表示されればOKです。

main.js

step plugin

連鎖する依存関係を記述するためのpluginです。

以下の3つのJSファイルをロードすることを考えてみます。

threeはtwoに、twoはoneに依存していますから、one→two→threeの順番にロードする必要があります。step pluginを使えばこの連鎖を簡単に表現できます。

app/one.js

app/two.js

app/three.js

main.jsを以下のように編集して、「onetwothree」と表示されればOKです。

main.js

ここで呼び出せるのはstepsで指定した最後のコンポーネントのみで、つぎのような呼出はできないことに注意!

以下のように怒られます。