RequireJS + WordPress
以前、こんな記事を書いた。 Bower + RequireJS - Code to Fab
そもそもなんでこんなことをしていたかと言えば、WordPress のテーマ用の開発だったのだが、こんなに準備しても冷静に考えれば WordPress の場合は PHP の方で JavaScript の実行が制御されてしまうから、当然のごとくぽっと置いただけではうまくいかない。 調べてみると、wp_enqueue_scripts() を使って以下のようにすればいいらしい:
JavaScript を呼び出したい WordPress 側:
<?php // WordPress の関数を使って baseUrl のパスを作成 $componentsUri = get_template_directory_uri() . '/js/components'; // wp_enqueue_script を使って require.js を呼び出し wp_enqueue_script('requirejs', $componentsUri.'/requirejs/require.js'); // require.js に baseUrl のパスを渡す wp_localize_script('requirejs', 'require', array( 'baseUrl' => $componentsUri, 'deps' => array( get_template_directory_uri() . '/js/main.js') )); ?>
呼び出される main.js 側:
// 渡された変数を使って baseUrl をセット requirejs.config({ baseUrl: requirejs.toUrl('') });
これだけで OK 。
割とすっきりかける。 Browserify ならもっと楽に書けそう。