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

Вопрос Импорт пакетов на клиенте

Kole so

Новый участник
14 Окт 2022
12
0
3
Мне нужны кастомные ивенты, те что в рейдже подходят, но это не суть. Я использовал для них EventEmitter
JavaScript:
const { EventEmitter } = require('stream');
Но на сторону клиента он не скачивается почему-то..


Что я делаю не так?
 

dooj

Гуру
FrontEnd developer
24 Мар 2022
478
132
120
stream это файл stream.js или библиотека?

Если это локальный файл, то попробуй изменить путь на ./stream | ./stream.js
 
Последнее редактирование:

akudinov28

Старожил
24 Фев 2021
492
241
106
На клиенте путь должен всегда начинаться с папки client_packages, вне зависимости от того, на каком уровне вложенности мы находимся на текущий момент. То есть, даже если мы реквайрим в файле client_packages/folder1/folder2/file1.js, то в нём нам нужно писать const test = require('./folder1/folder2/file2.js');
 
Реакции: dooj

dooj

Гуру
FrontEnd developer
24 Мар 2022
478
132
120
Дезинфа.
 
Реакции: trasher и Inoi

vpn

Начинающий специалист
29 Май 2022
138
66
85
Он пытается node-модуль как я понимаю воткнуть, а на RAGE так нельзя.

Поэтому правильным решением будет высунуть этот модуль из node_modules, и засунуть его в client-packages
 

dooj

Гуру
FrontEnd developer
24 Мар 2022
478
132
120
Что? При чем тут рейдж? И почему нельзя импортировать модули? Банально, в пример mysql2 - как же импортируется он?
 

dooj

Гуру
FrontEnd developer
24 Мар 2022
478
132
120
И вытаскивать модули из node_modules, полное извращение.
 

vpn

Начинающий специалист
29 Май 2022
138
66
85
Например потому-что он на сервере
Попробуй импортнуть в клиенте, посмотрим на успехи
 
Реакции: trasher

Kole so

Новый участник
14 Окт 2022
12
0
3

Да, это я и пытаюсь сделать. Если вытащить, то как быть с зависимостями внутри модулей? В каждом заменять путь получается?
 

vpn

Начинающий специалист
29 Май 2022
138
66
85
Просто вытащи папку с нужным тебе модулем, закинь в клиент packages и делай такой-же require какой ты делаешь когда пишешь свой код.
 

akudinov28

Старожил
24 Фев 2021
492
241
106
Что дезинфа? Вы хоть протестировали, прежде чем утверждать? На клиентке относительный путь ./ ссылается на client_packages. Только что проверил себя, думал может что-то подзабыл, но нет, всё верно.


index.js:
JavaScript:
require('./folder1/folder2/test1.js');

folder1/folder2/test1.js
JavaScript:
require('./test2.js');

folder1/folder2/test2.js
JavaScript:
mo.console.logInfo(`Test`);

Код выдает ошибку could't locate file test2.js. Потому что он ищет его в папке client_packages. Если в test1.js заменить путь на ./folder1/folder2/test2.js - всё работает.

// И require из node_modules работать, естественно, не будет, ибо на клиентке ванильный JS, а не nodeJS.
 

lurkmorr228

Участник портала
7 Май 2022
26
7
38
на клиенте недоступны модули из стд либы ноды
 

lurkmorr228

Участник портала
7 Май 2022
26
7
38
require это нода
 

akudinov28

Старожил
24 Фев 2021
492
241
106
Да, как раз пошёл себя проверять. Признаю, в ванильном js нет require, моя ошибка. Но это не отменяет факта, что на клиентской части ragemp нельзя использовать import/export, реквайрить npm модули и т.д. Теперь мне стало интересно, откуда тогда там require. Пойду читать матчасть.
 

Kole so

Новый участник
14 Окт 2022
12
0
3
exports работает, но module почему-то undefined
 

dooj

Гуру
FrontEnd developer
24 Мар 2022
478
132
120

Наблюдай. Если требуется видео-демонстрация, жду в дискорд.
 

Similar threads