Как создать функцию, загружающую «модули» - PullRequest
0 голосов
/ 06 августа 2020

Итак, я создаю простой ресурс для игры под названием FiveM , в любом случае у меня есть папка с именем utils, и в ней есть подпапки для каждого «модуля», все они, включая имя файла this. js, которые имеют настраиваемые функции, такие как ведение журнала et c ... все это делается с помощью module.exports, поэтому мой вопрос в том, как я мог бы go создать функцию для загрузки указанного мода, у меня почти все, что я не могу заставить работать, это действительно загрузка ...

Пока что у меня:

const fs = require( 'fs' )
const path = require( 'path' )

const MOD = ( mod ) => {
    /*
    * Load them mods into memory
    * */

    fs.access( path.join( __dirname, `..\\${mod}\\this.js` ), fs.F_OK, ( err ) => {
        if ( err )
            return console.error( `Module ${mod} @ utils\\${mod} does not exist!` )

        console.log( `Loaded ${mod} @ utils\\${mod}` )
        return require( path.join( __dirname, `..\\${mod}\\this.js` ) )
    } )
}

exports.MOD = MOD
MOD( 'colors' )

LOG( `${ Colors.yellow } Hello, it works!` )

Вывод:

Ошибка загрузки скрипта fivem. js в ресурсе gus-rp: ReferenceError: Цвета не определены

Я заметил, что мне нужно передайте функцию в скобках, если я не могу понять, вот что я имею в виду

const { Function } = require( 'path/to/function' )

Что бы меня испортило, если бы у меня было много функций, скажем, /utils/logging/this.js

Как мне загрузить все модули module.exports в файл?

1 Ответ

0 голосов
/ 07 августа 2020

Чтобы загрузить все экспорты в файл, вам нужно экспортировать их все. Стандартный шаблон:

module.exports = { Function1, Function2 };

И затем в файле, который вы хотите использовать,

const moduleFile = require(‘module.js’);
moduleFile.Function1();
moduleFile.Function2();

Обратите внимание, что вам нужно загрузить файл в переменную, которую вы хотите использовать, чтобы работай. Ваша функция загрузчика MOD не сделает файлы доступными в других файлах при загрузке мода, если вы не экспортируете функцию с именем, которым хотите быть. Т.е. Цвета

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...