Для тех, кто может столкнуться с подобным вопросом:
Если погуглить задачу разбиения большого файла node.js на куски то все решения будут подобны предложенному варианту пана Проффэсора. Данный вариант технически работает, но эстетически дискомфортен и неприемлем. И большой массив инициализировать можно присваивая каждому элементу значение построчно. Теоретически - тоже работает. Ситуацию усугубляет тот факт, что JS не имеет множественного наследования. Поэтому получилось два варианта решения.
Первый вариант:
Разбиваем класс как вам удобно. Выносим функции во внешние файлы и связываем из последовательно цепочкой при помощи наследования proto
например:
test1.js
class myClass{
function2(){}
function1(){}
}
module.exports = myClass;
test2.js
const test1 = require('./test1.js');
class myClass{
__proto__: test1
function3(){}
function4(){}
}
module.exports = myClass;
main.js
const test2 = require('./test2.js');
class myClass{
__proto__: test2
function5(){}
function6(){}
}
Обратите внимание, что во всех файлах имя класса остается такое же как у класса в основном файле.
Тот же самый вариант получился если бы мы задействовали extends:
test1.js
class myClass{
function2(){}
function1(){}
}
module.exports = myClass;
main.js
const test1 = require('./test1.js');
class myClass extends test1{
constructor(){
super( ); // -- здесь обязательно вызывается конструктор дочернего объекта
}
function5(){}
function6(){}
}
В этом варианте единственный недостаток - последовательная цепочка разбивки может быть логически несостоятельна.
Например функции работы с смс сообщениями будут наследовать класс работы с консолью линукс машины и т.д.
Поэтому для меня данный метод тоже не подошел. Есть второй вариант - использовать примеси.
Причем есть задумка делать подключение блоков функции "по требованию".
Если же класс функционально однороден - то первый метод найболее подходит. Надеюсь кому то может пригодиться.
Спасибо