Evgeny
И не нужны никакие апострофы на отдельной строке
Evgeny
Коллеги, нужен совет.
Сейчас в моём проекте runtime-конфигурация вынесена в отдельный модуль, который получается через обычный require('config'). Таких мест около двух-двух с половиной сотен во всех приложениях. Встал вопрос о внедрении consul для хранения конфигурации, соответственно, конфиг должен читаться каждым приложением из него асинхронно при старте.
Собственно, возникла мысль: при старте приложения заполнять require.cache вот так:
const resolved = require.resolve('config');
require.cache[resolved] = { id: resolved, filename: resolved, loaded: true, exports: { foo: 42 }};
Как временный вариант, пока не перепишется использование модуля config по всему проекту — насколько это плохое решение? Возможно, кто-то сталкивался с подобным и может подсказать более надёжный путь?
херовый. лучше у всех сделай предзагрузочный файл который бкдет загружть конфиг и подсосввывать как аргумент основному аппу
Yuriy
Aleksand
Evgeny
Не надо ничего переписывать кроме деплоя
Evgeny
Там он загружает конфиг из файла, а тут ты загружаешь конфиг и дальше либо суешь его в файл который потом схватит конфиг, либо передаёшь его как параметр. Ну или мерзко перезаписываешь загруженный модуль, да
No1
И все в файле?)
Yuriy
Вот мне идея с ковырянием require.cache тоже не кажется хорошей, потому и спросил здесь.
No1
Что делать с динамически обновляемыми данными?))
Yuriy
Матрос
вот кстати у меня тоже вопрос по поводу конфигурирования но немного другой. Один модуль выдает события по которым я ищу совпадения прям в JSON справочнике, в котором все эти совпадения прописаны. Справочник отвечает за сообщения отправляемые другим сервисам в инфраструктуре. Мысль есть - сделать модуль который считывает этот JSON-справочник и импортируется глобально в аппу - при изменении справочника соответственно всех оповещает. Вам как кажется - это сильно криво? Как вообще делают в подобных кейсах?
Yuriy
тогда вам консул зачем? просто собирайте конфиг из переменных окружения
Хочется иметь одну точку модификации конфига. План был таков, что в консул загружается текущий конфиг, а все приложения его читают. На другой чаше весов у меня сейчас подход 12factor, где как раз всё в переменных окружения. Я пока оцениваю варианты с т.з. трудозатрат на внедрение.
No1
Ну вот смотрите, окружение - это здесь и сейчас. В консуле вы можете их перечитать не меняя код. Удобнее?
No1
При файле, вы при изменении конфига, будете передеплоивать код.
Aleksand
No1
Каждый сервис запишет то, что нужно ему)
Aleksand
Каждый сервис запишет то, что нужно ему)
а сервисов сколько? если я за день задеплоил и раздеплоил примерно миллион контейнеров по ситуации то это что у меня на каждый будет отдельный конфиг который еще и убрать кто-то должен потом?
No1
Зачем?
Aleksand
No1
У вас в одном месте конфиг
No1
Зачем отдельный конфиг?
No1
Там по коду разбросанно одно и тоже
No1
Вообще я не видел проблем с консулом, но всегда был fallback. А это уже могут быть и переменные окружения))
Pavel
люди
как автоматически обновить все пакеты в package.json
На последний
Pavel
неужели придется вручную номера версий вставить везде
Артур
npm update
Артур
только при условии что у тебя не указана конкретная версия
Pavel
указаны
Артур
там если в версии указано так «^1.0.0»
то он обновит
Pavel
не обновляет
Pavel
я давно както обновлял, забыл
или это yarn был
Pavel
npm-check -u
вроде как справился, плохо что надо выбрать пакеты в меню
Yar
Pavel
после этих магических заклинаний вроде webpack-simple
запускается
грязно не ругается
но страница Localhost:8080
пустая
Pavel
разобрался надо было на хост —host 0.0.0.0 запустить
Матрос
мне так никто и не ответит?
Матрос
вот кстати у меня тоже вопрос по поводу конфигурирования но немного другой. Один модуль выдает события по которым я ищу совпадения прям в JSON справочнике, в котором все эти совпадения прописаны. Справочник отвечает за сообщения отправляемые другим сервисам в инфраструктуре. Мысль есть - сделать модуль который считывает этот JSON-справочник и импортируется глобально в аппу - при изменении справочника соответственно всех оповещает. Вам как кажется - это сильно криво? Как вообще делают в подобных кейсах?
Aleksand
Aleksand
кто на чем там стоит не ясно
Nikolay
Nikolay
Просто кусочек правды
Михаил Макарычев
Чаще этой картинки сюда кидают только мем с '2'+1, '2'-1 и пр.
Bushrut
мэн, ты норм ? такое постить
CherryTea
а госпаде, пока грузилась гифа я уже невесь что себе представил, а там всего-то навсего шкурагейминг
Eugene
Здравствуйте.
А как в node.js отдавать media файлы, например mp3 ?
Ну например юзер загружает файл (Куда и в какую директорию его грузить?)
И как потом вернуть?
Думаю static не подойдет для такого?
Eugene
Использую Express.
arts
Static годится только для локалхоста. Отдавай nginx'ом.
Eugene
А в статике норм хранить файлики загруженные пользователем ?
arts
Норм.
Egor
@HellPirate res.sendFile
Egor
можно, да
Ilya
но зочем. сказать экспрессу где статика и все
Mike Khromov
Народ, а сейчас вообще не вариант приюзать soundcloud без регистрации приложения? Я хотел его прикрутить через blessed js и сделать себе плеер но че-то хрен
Evgenii
Всем привет, подскажите пожалуйста, у меня совсем нубский новичковый вопрос, только знакомлюсь вообще с фронтендом (я DevOps)
Почему node_modules это локальная папка? Почему не используется такой же подход как у python и pip например?
Я знаю про глобальную установку, но кажется, что тут принято держать node_modules локально или я не прав?
Evgenii
Я сейчас в процессе придумывания как собирать фронтенд через TeamCity на девы разработчиков, разумеется, хочется чтобы сборка была максимально быстрой, поэтому пытаюсь понять почему NPM работает именно так, как на картинке выше, чтобы разобраться, как же это готовить
arts
В python тоже принято юзать virtualenv
arts
arts
В ноде тоже можно глобально устанавливать
Михаил Макарычев
Evgenii
Evgenii
Evgeny
npm install webpack -g
Evgenii
Evgeny
у меня робзит