Node.js環境で作ったクラスを非Node.js環境で使うには
Q&A
解決したいこと
Node.js環境で記述したクラスや関数を、Node.jsを全く使用しない環境(例えばhtmlファイルに記述したscriptタグ内など)で実行することは可能ですか、可能であるならばそれを実現するための手順を知りたいです。
経緯
普段JavaScriptの開発は、Node.js環境下で以下のような手順で作業しています。
- npmでパッケージをインストールする
- パッケージをimportして自分なりのモジュールを作る(作ったモジュールをexport)
- エントリーポイントとなるindex.jsで作成したモジュールをimportしてウェブアプリを作る
- webpackでコンパイル(バンドル?)する
- 生成したファイルを公開する
モジュールで作ったクラス(や関数)を試用したい、と知人に依頼を受けました。ただし知人はNode.jsを使わない環境で開発をしているため、該当するファイルをそのまま渡しても使用できません。
自分で試したこと
例えば普段は以下のようにモジュールを記述しています。
import hoge from "hoge";
export default class Fuga { //このクラスを使いたい
piyo ( value ) {
return hoge( value );
}
};
調べたところbrowserifyの挙動が近そうと思い試したのですが、browserifyは記述したJavaScriptの実行は可能であるものの、モジュール等で定義したクラスや関数に対して、外部から使用可能になるものではなさそうなことがわかりました。
import hoge from "hoge";
class Fuga { //このクラスを使いたい
piyo ( value ) {
return hoge( value );
}
};
const obj = new Fuga();
console.log( obj.piyo('test') );
上記のようにbrowserifyする前に処理を記述すれば使えますが、結局node.jsの環境が必要になってしまいます。
可能でしょうか
結論としてNode.js環境で作ったクラスや関数を非Node.js環境で使えるようにすることは可能でしょうか。
可能でしたら、それを実現するための手順(ヒントでも結構です)をご教示ください。
よろしくお願いします。