• Код объясните,пожалуйста на JS(комментарии,если можно).Особенно интересует зачем здесь this?

    @amokrushin
    olya_097, в данной задаче ни для чего. Просто функция apply первым аргументом принимает контекст вызова, вторым - массив аргументов. Контекст здесь не важен, поэтому первым аргументом передается что-угодно, обычно null.
    Иными словами в этой задаче используется только способность метода apply разворачивать массив аргументов в список аргументов для вызываемой функции.
  • Как получить адрес сервера с вебсокетом в рамках одной network в docker-compose?

    @amokrushin
    require('socket.io-client').connect('ws://service-b')
    Для wss нужно поднимать https сервер в сервисе server-b.
    Ну и не забыть про expose 80 для server-b, если это еще не сделано.
  • На что жалуется npm при установке maskedinput?

    @amokrushin
    cimonlebedev, полагаю что в вашем случае достаточно удалить fsevents из зависимостей (из секции dependencies package.json).
    Во всех остальных случаях этот модуль добавляется исключительно в секцию optionalDependencies файла package.json и устанавливается только в операционной системе OS X.
  • Можно ли запустить сайт написанный на NodeJS без NodeJS?

    @amokrushin
    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... - все это часть работы вебпака.