olya_097, в данной задаче ни для чего. Просто функция apply первым аргументом принимает контекст вызова, вторым - массив аргументов. Контекст здесь не важен, поэтому первым аргументом передается что-угодно, обычно null.
Иными словами в этой задаче используется только способность метода apply разворачивать массив аргументов в список аргументов для вызываемой функции.
require('socket.io-client').connect('ws://service-b')
Для wss нужно поднимать https сервер в сервисе server-b.
Ну и не забыть про expose 80 для server-b, если это еще не сделано.
cimonlebedev, полагаю что в вашем случае достаточно удалить fsevents из зависимостей (из секции dependencies package.json).
Во всех остальных случаях этот модуль добавляется исключительно в секцию optionalDependencies файла package.json и устанавливается только в операционной системе OS X.
beduin01: Не очень понял вопрос про "современный". Здесь все современное. Подход зависит от масштабов приложения, так можно и в doker, continuous integration с головой уйти, забыв ту задачу которую пытался решить изначально.
Вам надо по шагам разобраться с тем что происходит. Как я понимаю основная проблема здесь именно webpack и его конфигурация, а не node.js. Да, это не самый простой инструмент, его действия порой не очевидны.
npm run build - это не какая-то встроенная команда npm/node.js, это скрипт который был кем-то написан, посмотреть что он выполняет можно в файле package.json в секции script, скорее всего что-то вроде "webpack", это значит он запустит webpack с конфигом по умолчанию из файла "webpack.config.js". Далее попытаться разобраться с файлом конфигурации вебпака, начиная с секции entry - это входные точки, для каждой такой точки будет создан файл в папке build, который будет иметь имя в соответствии с правилами в секции output.
Проблема в том что особой магии тут нет, и необходимые файлы нужно подключать на странице вручную (script, link), и когда у вас один файл, проблем обычно не возникает, просто подключили и все. Когда используется code splitting, асинхронная загрузка модулей, тогда и начинаются проблемы. Тут только два варианта, либо оставить все в одном файле и забыть про асинхронную загрузку модулей и упаковывать все в один единственный пакет (bundle) который загружать на каждой странице, либо потратить энное количество времени и разобраться с Code Splitting и тем как работает загрузчик модулей вебпака, экспериментируя на простых примерах и смотря код который получается после сборки.
Например, примерно так выглядит код загрузчика вебпака, который он добавляет к файлу сборки https://gist.github.com/amokrushin/47b74e6191d96fc...
именно этот код исполняется в браузере и загружает модули асинхронно путем добавления нового тега script в заголовок страницы во время исполнения. Все require/export которые вы пишите в клиентском коде обрабатываются именно вебпаком на этапе сборки, node.js не имеет к ним отношения.
В том числе и асинхронная загрузка компонентов vue (https://vuejs.org/v2/guide/components.html#Async-C... - все это часть работы вебпака.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Иными словами в этой задаче используется только способность метода apply разворачивать массив аргументов в список аргументов для вызываемой функции.