Evgeny
shame on me, then
Denis
Интересно, как можно пропарсить директорию из извлечь из неё все фрагменты, где используется process.env?
Evgeny
grep -R
Denis
grep -R
Надо извлечь содержимое, ключ, который извлекается из env)
Evgeny
| awk/sed ?
Denis
eslint?
Denis
Я имел ввиду да, парсер его)
Denis
Я думал уже есть решения
Denis
Загуглил и тишина
Denis
Нормальная же задача, понять – какие переменные могут использоваться в этом проекте
Denis
Оу, RReverser
Vladimir
Да реально лучше sed ил что то такое
Denis
)) Хотелось бы автоматизировать это и отдать в CI
Vladimir
корнер кейсы когда нужен синтаксический анализ чкдовищно маловероятны
Denis
Чтобы она обновляла envs.md
Vladimir
мне кажется констурктивнее делать обертку
Vladimir
над process.env
Denis
Это сразу DI
Denis
Не круто)
Denis
Хотелось бы делать с наименьшим количеством зависимостей, чтобы copy-paste-share
Vladimir
да и вообще - доступ к env по проекту не разбрасывать в идеале
Denis
Denis
Но тогда портабельность уменьшается
Vladimir
у меня такой подход - есть config
Vladimir
нужно его создать
Vladimir
из чего не важно
Vladimir
env, argv, и т д
Vladimir
но потом уже туда лезть нельзя
Denis
Как в Meteor :D
Vladimir
const config = {
foo: readStringFromEnv('FOO', 'desc'),
bar: readIntFromEnv('BAR', 'desc'),
}
Vladimir
как то так обычно это выглядит
Vint
Вот тоже трезвое решение
Я так и пользую. Тот же production mode один раз "считается" в конфиг файле, а в приложении используются флаги из конфига. Удобно. Можно nconf внедрить в проект.
Vladimir
соответственно имея такую конструкцию, можно спокойно за всякого парсинга сгенерить описание
Ohar
Esprima, нет?
Ohar
Чем он лучше?
Ohar
Например?
Ohar
Импорты/экспорты она умеет и вот это всё
Ohar
Просто сам ей пользуюсь и полностью устраивает, вот и спросил
Denis
Кстати, да
Ohar
Не, у меня сильно проще всё, я парсю вывод Google blockly
Ohar
Почитал чутка, babylon помощнее, мне столько не надо, сколько он делает, поэтому останусь пока на esprima
Ohar
Я просто игрушку про программирование роботов делаю
Ohar
Пришлось узнать много новых вещей типа AST
Denis
Просто grep -R не будет работать – строки с кодом могут быть закомментированы
Denis
Комментарии есть двух видов
Denis
И если строковый можно отсечь, то многострочный уже сложней
Vladimir
ну объективно, в такой ситуации проще удалить закоменнтированные строки
Vladimir
а так - понятно что гарантировано распарсить регэкспом код нельзя
Nikolay
Так как он на неделю раньше тогда? :)
Nikolay
Порекомендуйте годную книжку по ноде (я новичек в этом), только не аля getting started, а что-то интереснее и полезнее. Можно на английском.
Vlad
Vlad
https://nodejs.org/en/docs/
Nikolay
документация?
Если нечего сказать, то лучше промолчать :)
Roman
Nikolay
Будто вернулся в прошлое лет на 20
Nikolay
Кстати, там
function fibonacci(n) {
if (n < 2)
return 1;
else
return fibonacci(n-2) + fibonacci(n-1);
}
Было бы круче, если бы можно было так:
defmodule Fun do
def fib(0), do: 0
def fib(1), do: 1
def fib(n) do
fib(n-2) + fib(n-1)
end
end
Roman
Nikolay
Вообще мимо
Nikolay
Nikolay
Дотнетчики просто по особому все воспринимают, для них отдельно книги делать надо
Vlad
Nikita
Всем ночного кодинга ✌️
Nikita
Заехал к вам с тупым вопросом. А вот собственно вопрос: возможно ли в модуле запретить обновление файла? ну к примеру модуль ставится в node_modules/%name% в нем файл config.js, так вот мне не надо чтоб он обновлялся при обновлении модуля. Уже весь стаковерфлоу перерыл
Vlad
Nikita
как быть? только расширять эскпортсом модуль?
Vlad
каждый раз когда модуль обновляется, всё затирается и заново скачивается из нпм
Nikita
Ну это я уже понял, когда у меня весь конфиг затерся)
Vlad
а чего именно ты хочешь добиться?
Nikita
1) чтоб при обновлении модуля не терся конфиг
2) чтоб в node_modules/%name%/plugins можно было сувать "свои" файлы, и не бояться обновлений
Как я уже понял эти пункты не возможны
Nikita
Конфиг указывается на каждой машине свой (домен, токен, порт)
Vlad
ты хочешь неправильного
Vlad
это должно быть в приложении
Vlad
и пробрасываться в модуль аргументом
Nikita
Вот всеми силами хотел от этого уйти
Vlad
наоборот к этому нужно прийти
Nikita
Да бы поднималось все одной командой
Vlad
ну сделай дефолтный конфиг, если конфиг не пробрасывают
Nikita
Дефолтный конфиг у каждого сайта свой) проще говоря модуль под цмску с плагинами
Vlad