若くない何かの悩み

何かをdisっているときは、たいていツンデレですので大目に見てやってください。

Node.jsのモジュールをブラウザで動作させる方法

動作がわかりづらいモジュールのために、ブラウザ上で動作するライブデモを書いてみた。 

ライブデモのサンプル: jsdoctypeparser

 

理想としては、Node.jsのやり方で書かれたコードがブラウザ上でも動作すること。しかし、どのブラウザも CommonJS の module 仕様を実装していない。ライブデモのためにわざわざブラウザ用に書き直すのは本末転倒なので、ブラウザ上で module システムを再現してくれるモジュールを探してみた。 

 

しかし…いいのがない! 

 

"require.js

有名どころ。だがこいつでは CommonJS のものを、標準の方法(require使うやりかた)によってブラウザ上で動作させることはできない。このモジュールの目的は、ブラウザ上で CommonJS も ど き のモジュールロードの仕組みを提供すること。CommonJS とは互換性がない(正確には、Node.js上でも使えるようにできる。しかし、requirejs独自の仕組みを使わなければならない)。

 

いろいろと迷走しはてて、ようやく目的のものが見つかった。 

 

"require-simple.js"

開発者 gfx 氏の記事が参考になる。名前に simple とあるとおり、機能はかなり簡素だ。 

自分の場合は、<base>でモジュールの相対パスの位置を調節してあげないと動かなかった。