私は、クライアントからもサーバーからもモジュールをロードするために使用できる(Nodeのrequireまたはブラウザーのスクリプトタグを使用して)インポートできる単純なモジュールを作成しました。
使用例
1.モジュールの定義
次のファイルをlog2.js静的Webファイルフォルダー内に配置します。
let exports = {};
exports.log2 = function(x) {
if ( (typeof stdlib) !== 'undefined' )
return stdlib.math.log(x) / stdlib.math.log(2);
return Math.log(x) / Math.log(2);
};
return exports;
そのような単純な!
2.モジュールの使用
これは双方向モジュールローダーなので、両側(クライアントとサーバー)からロードできます。したがって、次のことを実行できますが、両方を同時に実行する必要はありません(特定の順序で単独で実行する必要はありません)。
ノードでは、それは簡単です:
var loader = require('./mloader.js');
loader.setRoot('./web');
var logModule = loader.importModuleSync('log2.js');
console.log(logModule.log2(4));
これは戻るはず2です。
ファイルがNodeの現在のディレクトリにない場合は、必ずloader.setRoot静的Webファイルフォルダーへのパス(またはモジュールがどこにあるか)を使用して呼び出してください。
まず、Webページを定義します。
<html>
<header>
<meta charset="utf-8" />
<title>Module Loader Availability Test</title>
<script src="mloader.js"></script>
</header>
<body>
<h1>Result</h1>
<p id="result"><span style="color: #000088">Testing...</span></p>
<script>
let mod = loader.importModuleSync('./log2.js', 'log2');
if ( mod.log2(8) === 3 && loader.importModuleSync('./log2.js', 'log2') === mod )
document.getElementById('result').innerHTML = "Your browser supports bilateral modules!";
else
document.getElementById('result').innerHTML = "Your browser doesn't support bilateral modules.";
</script>
</body>
</html>
あなたがいることを確認していないブラウザで直接ファイルを開きます。AJAXを使用しているため、http.server代わりにPython 3のモジュール(または、超高速、コマンドライン、フォルダーWebサーバーデプロイメントソリューション)を確認することをお勧めします。
すべてがうまくいけば、これは表示されます:
