#javascript #html #jquery #module
#язык JavaScript #HTML #jquery #модуль
Вопрос:
Я учусь правильно использовать модули js. Так что у меня есть моя main.js где у меня есть некоторая логика относительно того, какой js загружать. Короче говоря, я загружаю сценарии, используя импорт условий.
итак, у меня есть что-то вроде этого
main.js
import("/path/to/module").then(module =gt; { if (typeof module != "undefined") { module.default.render amp;amp; module.default.render(); } else { throw new Error(module "is not a module"); } });
В HTML не так много интересного. У меня есть это в конце тела, как это lt;script src="main.js"gt;lt;/scriptgt;
, Он выполняет основной сценарий, в котором я определяю свое пространство имен и выполняю все виды функций. Он динамически импортирует модули, и все они отлично работают. Хотя основной сценарий не является типом=»модуль», я считаю, что импортированные сценарии, использующие import (), должны действовать как модули. Единственная проблема, с которой я сталкиваюсь, — это импорт дополнительных сторонних библиотек.
Это правильно загружает мои сценарии. Загружаются все мои скрипты в моей папке, даже мои сторонние библиотеки. Но они недоступны из — за пределов их модулей. Например, я хочу импортировать script1, который также импортирует jQuery, иначе я не смогу использовать его в нем. (Или, допустим, я хочу импортировать библиотеку карусели в свой сценарий 1, которая инициализировала бы его. Я знаю, как экспортировать и импортировать свои собственные скрипты и использовать их, но я борюсь со сторонними библиотеками. Как мне импортировать jquery? Нужно ли мне как-то редактировать уже уменьшенный код или что-то еще? Мои модули выглядят так
сценарий 1:
//I wanna import jquery here // something like import $ from 'path/jquery/'; export default { render: function() { }, ... }
Я попытался отредактировать уменьшенный файл jquery, добавив что-то вроде этого в конце файла, jquery3.6.min.js:
//minified jquery oneliner here... export {$}
or module.exports = {$}
but that returns various errors.
I tried not touching the minified jQuery at all and just call
import $ from "jquery"
in script1.js but that gives me
Uncaught (in promise) SyntaxError: The requested module '/-a51---tcFORo5D/jquery' does not provide an export named 'default'
Как правильно это сделать? Весь смысл того, чего я пытаюсь достичь, заключается в том, чтобы иметь возможность импортировать сторонние библиотеки в мои сценарии только при необходимости, чтобы я не загружал большие файлы, когда они не нужны. Кроме того, я не использую NPM или какую-либо другую систему. Я хочу знать, как это достижимо в чистом js.