Выполнение JS из проекта RCL не используя type="module"

У меня есть 5 JS файлов, которые хранились в Blazor проекте в папке "wwwroot/js" и успешно выполнялись через <Script "...">, но после переноса JS в новый RCL проект возникла проблема: Навязчивое исключение об использовании import вне модуля.
RCL проект с js-скриптами называется AMBlazorNodes.
Код скриптов следующий, и в логике схож, то есть он не экспортирует функции или переменные, а добавляет некоторые объекты в window[]:

//#AMBlazorNodes/wwwroot/js/DotNetServiceAttacher.js
console.log("Initialization... DotNetServiceAttacher.");
window['addDotNetSingletonService'] = (name, dotNetServiceRef) => {
    window[name] = dotNetServiceRef;
};
//#AMBlazorNodes/wwwroot/js/NodeDragHandler.js
console.log("Initialization... NodeDragHandler.");
class NodeDragHandler {
    constructor() {
        this.startNodeDrag = () => {
            //console.log("starting node drag");
            document.addEventListener('mousemove', window['NodeDragHandler'].dragNode);
            document.addEventListener('mouseup', () => document.removeEventListener('mousemove', window['NodeDragHandler'].dragNode));
        };
        this.dragNode = (event) => {
            window['DotNetNodeDragService'].invokeMethodAsync("DragNode", event.clientX, event.clientY);
        };
    }
}
window["NodeDragHandler"] = new NodeDragHandler();

Для того, чтобы не импортировать 5 разных JS файла из библиотеки - создал следующий JS файл:

//#AMBlazorNodes/wwwroot/AMBlazorNodes.lib.module.js
console.log("AMBlazorNodes initialization started...");
import './js/DotNetServiceAttacher.js';
import './js/NodeDragHandler.js';
import './js/NoodleDragHandler.js';
import './js/ZoomHandler.js';
console.log("AMBlazorNodes initialization finished!");

И в Razor проекте подгружаю его следующим способом:

//#_Host.cshtml
<!-- AMBlazorNodes -->
    <script src="_content/AMBlazorNodes/AMBlazorNodes.lib.module.js"></script>

JS-скрипты выполняются, как ожидалось, но выдает исключение:
_content/AMBl…des.lib.module.js:2 -> Uncaught SyntaxError: Cannot use import statement outside a module

Добавил аттрибут type="module", что убрало исключение Uncaught SyntaxError (представленное выше), но можно ли обойтись без этого аттрибута? Интересно, как это устроено в RCL с Nuget, где можно использовать без type="module", или может здесь есть решение проще?
И как второстепенный вопрос, почему файл выполняется не по порядку? Как видно из лога, сообщение о начале инициализации выводится в конце:\

DotNetServiceAttacher.js:1         Initialization... DotNetServiceAttacher.\
NodeDragHandler.js:1               Initialization... NodeDragHandler.\
NoodleDragHandler.js:1             Initialization... NoodleDragHandler.\
ZoomHandler.js:1                   Initialization... ZoomHandler.\
AMBlazorNodes.lib.module.js:1      AMBlazorNodes initialization starting...\
AMBlazorNodes.lib.module.js:6      AMBlazorNodes initialization finished!\

Спасибо за помощь с банальными вопросами, я в .NET уже много лет, но с Blazor и Razor только начинаю осваиваться.
Код в большей части не мой, это скрипты из проекта Nodexr


Ответы (0 шт):