This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Проблемы конфигурации Svelte

Edward Esteban

Начинающий специалист
11 Ноя 2020
12
1
60
Пробовал верстать CEF условные логин\регистрацию. Появился ряд проблем по взаимодействием с клиент частью:
  • У меня стандартны настройки из коробки можно сказать, что нашел добавляют в проект webpack - для чего он?
  • windows.mp - не видит mp переменную, что б убрать ошибку закостылил так:
    В ином случае если использовать напрямую window.mp.trigger(...) Property 'mp' does not exist on type 'Window & typeof globalThis'.
    Возможно я не подключил какой пакет?


  • Больше вопросов вызывает билд, а именно npm run build
    Я выставляю через setActiveView в App.svelte ту UI которую хочу отобразить. Сделав build появляется html файл который я могу использовать в клиенте с#
    т.е добавляя новые вью мне надо будет всегда ручками делать ребилд и брать эти файлы, что не очень удобно, есть ли альтернативный способ? Подскажите какие-то мануалы статейки куда смотреть или что я не так сделал?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,628
1,279
5
1. Webpack - это модульный сборщик, который позволяет объединять и управлять зависимостями JavaScript-файлов в вашем проекте.

2. Чтобы избежать ошибки "Property 'mp' does not exist on type 'Window & typeof globalThis'", вам необходимо объявить объект 'mp' в глобальной области видимости. Например, вы можете добавить следующую строку перед использованием 'window.mp.trigger()':
JavaScript:
declare var mp: any;
Это позволит TypeScript распознать 'mp' как существующий объект.

3. Вместо ручного ребилда при добавлении новых вью, вы можете использовать гибридные роутеры, такие как SvelteKit, который позволяет динамически загружать компоненты и предоставляет более удобный способ управления маршрутами.

В целом, для конкретных рекомендаций и лучших практик, я бы рекомендовал обратиться к документации вашего фреймворка (например, Svelte), а также к документации RAGE Multiplayer и CEF, чтобы получить более детальную информацию о том, как лучше всего организовать взаимодействие между клиентской частью и вашим пользовательским интерфейсом.
 
Последнее редактирование модератором:
Реакции: Inoi

Edward Esteban

Начинающий специалист
11 Ноя 2020
12
1
60
Нет, по последнему пункту там вопрос в том что npm run build мне все сбилдит в один html файл, а если у меня к примеру есть вью инвентаря и телефона, то мне надо ручками выставлять активную страницу, сделать два раза билд, что б получить разные html, и перенести в client_packages что б я могу сделать условно:

C#:
var inventory = new HtmlWindow("package://inventory/index.html");
var phone = new HtmlWindow("package://MobilePhone/index.html");
Пока что я не знаю можно ли сделать что б npm run build собирал разные компоненты и под нихбилдались отдельные .html .css .js
npm run dev - как я понимаю тут мне ни к чему, только пока верстаю, смотреть изменения


Webpack поиде должен мне с этим помочь или я ошибаюсь?
 

LIAS1N

Специалист
9 Окт 2021
102
32
95
А в чем проблема использование единого .html, но с возможностью отрисовки разных компонентов?
 

Edward Esteban

Начинающий специалист
11 Ноя 2020
12
1
60
Я правильно понял идею:
В зависимости от нужного мне компонента в шарпе делать что то типа _loginRegistrationForm.ExecuteJs("setActiveView('Authorization')");

Что то типо такого?
 

Swayze

Начинающий специалист
6 Окт 2022
65
16
45
Тебе не нужен window.mp, работает и с обычным mp
Что то типо такого?
Да, если хочешь вызывать его с клиент сайда - сделай по типу

Код:
window.setActiveView = function(view) {
  selectedView.set(view)
}
 
Реакции: Edward Esteban

Edward Esteban

Начинающий специалист
11 Ноя 2020
12
1
60
Это mp надо где-то глобально обьявить по типу того что советует бот? declare var mp: any;
или это просто любая переменная с названием mp?
Потому что у меня хоть с window.mp хоть просто mp оно его не видит и кидает ошибку
 

Swayze

Начинающий специалист
6 Окт 2022
65
16
45
Это mp надо где-то глобально обьявить по типу того что советует бот? declare var mp: any;
Если хочешь чтобы она у тебя в браузере не ругалась - тогда надо декларировать ее, я сам юзаю СвелтиКит(С обычным траблы были), проблемы были когда пытался задекларировать ее. Когда ты в игру запихнешь интерфейсы - триггеры будут работать нормально
 
Последнее редактирование:

Sinage

Начинающий специалист
Мошенник
17 Дек 2021
72
20
53
Как пример.

И если используешь TypeScript нужно дать ему знать, что у тебя в window будет находится объект mp. Можешь задать any тип, или можешь прописать весь тип чтобы сделать автозаполнение. Это нужно поставить куда-то в основной файл с типами или в любой основной файл, у меня пока что в main.ts лежит.

 
Реакции: Edward Esteban

Edward Esteban

Начинающий специалист
11 Ноя 2020
12
1
60
Спасибо, разобрался, теперь работает