Я написав простий модуль , який можна імпортувати (або використовуючи вимагати в Node, або теги сценарію в браузері), який ви можете використовувати для завантаження модулів як з клієнта, так і з сервера.
Приклад використання
1. Визначення модуля
Помістіть у файл log2.jsусередині папки статичних веб-файлів:
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. Використання модуля
Оскільки це двосторонній завантажувач модулів, ми можемо завантажувати його з обох сторін (клієнта та сервера). Отже, ви можете зробити наступне, але вам не потрібно робити обидва відразу (не кажучи вже про певний порядок):
У Node це просто:
var loader = require('./mloader.js');
loader.setRoot('./web');
var logModule = loader.importModuleSync('log2.js');
console.log(logModule.log2(4));
Це має повернутися 2.
Якщо ваш файл відсутній у поточному каталозі Node, переконайтеся, що зателефонував loader.setRootшлях до вашої статичної папки веб-файлів (або там, де знаходиться ваш модуль).
Спочатку визначте веб-сторінку:
<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 (або все, що є вашим супершвидким, командним рядком, рішенням розгортання веб-сервера папок).
Якщо все піде добре, це з’явиться:
