@nodejs_ru

Страница 875 из 2748
Алексей
14.06.2017
10:18:20
в дебаге про body ничего, ладно, погуглю, может реально метод не тот взял

Alexander
14.06.2017
10:52:24
парни, такой вопрос: в koa есть такой роут: .get('/:id', async (ctx) => { const result = await fakeResponse(); if (result) { ctx.body = JSON.stringify(result); console.log(ctx.body); } else { ctx.status = 204; } }) в реакт компоненте: fetchData = (url) => { this.setState({ loading: true, error: null }); fetch(`http://localhost:3001${url}`) .then((data) => this.setState({ loading: false, data })) .catch((error) => this.setState({ loading: false, error })); } в console.log(ctx.body); выдаёт то что надо. а в реакт-компонент прилетатает вот это: Response body: (...) bodyUsed: false headers: Headers ok: true redirected: false status: 200 statusText: "OK" type: "cors" url: "http://localhost:3001/12/"

Alex
14.06.2017
11:11:29
вопрос по аллокации памяти const arr = [] arr[10000] = 1 сколько отожрет?

sizeof(int) + оверхед на массив или sizeof(int) * 10000 + оверхед на массив?

Google
Maxim
14.06.2017
11:14:12
https://github.com/lerna/lerna

кто юзает ?

Дмитрий
14.06.2017
11:14:38
sizeof(int) + оверхед на массив или sizeof(int) * 10000 + оверхед на массив?
Скорее второе (но не уверен), но важнее то, что sparse array медленнее обычных, по возможности нужно их избегать

Сергей
14.06.2017
11:15:13
Я
Для каких проектов

Maxim
14.06.2017
11:15:14
каков профит, по сравнению, просто с репой без пакетов ?

Maxim
14.06.2017
11:16:05
лерна под отдельной репой у вас, или по репам с проектами размазана ?

Дмитрий
14.06.2017
11:16:28
Для каких проектов
Обкатал в telegram-mtproto, (там шесть пакетов разного назначения) теперь в закрытые проекты подтягиваю

Maxim
14.06.2017
11:17:05
ну и каждый отдельный проект, тянет из этой монорепы по пакетикам ?

Сергей
14.06.2017
11:17:11
Google
Таймураз
14.06.2017
11:17:33
спасибо
Ближе ко второму Но все предыдущие у тебя будут забиты indefined

Nurik
14.06.2017
11:17:57
ребят, а еще, не покажите, плиз, 2 объекта sequelize со связью one-to-many, если не сложно? ну на подобие User и Post
Я Кстати тоже пытался как-то со связями работать. Но так и не смог. Там вообще как-то всё сложно сделано. Так что я вообще бросил эту идею.

Дмитрий
14.06.2017
11:18:12
каков профит, по сравнению, просто с репой без пакетов ?
Смысл в том, что становится меньше проблем с зависимостями в случае связных проектов - всё всегда юзает актуальную версию

Maxim
14.06.2017
11:19:01
почему бы просто не заюзать второй сорс фолдер под гитом, без пакетиков ?

Сергей
14.06.2017
11:19:45
почему бы просто не заюзать второй сорс фолдер под гитом, без пакетиков ?
Лерна сама обновляет зависимости и версии из монорепо

Дмитрий
14.06.2017
11:20:34
почему бы просто не заюзать второй сорс фолдер под гитом, без пакетиков ?
Ну например фронт и бэк. Они будут требовать разных пакетов, lerna bootstrap - и всё само устанавливается и линкуется если надо

Maxim
14.06.2017
11:21:42
хм... тогда получается три физических репозитория, фронт , бэк, шаред. И если я делаю что-то в шаред, то должен вносить изменения ещё в двух репах и их коммитить

Сергей
14.06.2017
11:21:55
Ну например фронт и бэк. Они будут требовать разных пакетов, lerna bootstrap - и всё само устанавливается и линкуется если надо
Я вот думаю проект так писать. Бизнес логику вынести в отдельный пакет. Это норм?

Maxim
14.06.2017
11:22:04
шаред - монорепа, со всеми пакетами

Таймураз
14.06.2017
11:22:26
спасибо
На самом деле, массив в js-е - это объект. Выставив 10000 у тебя этому индексу присвоится значение и все

Таймураз
14.06.2017
11:22:45
спасибо
Так что по памяти оно займет немного места

Maxim
14.06.2017
11:23:09
т.е. мой модуль с точкой входа, это тоже часть монорепа. Будь то фронт или бэк

Alex
14.06.2017
11:23:18
Так что по памяти оно займет немного места
да, супер там просто массивы в массивах (yo dawg) и последний уровень не охота в объект класть

Maxim
14.06.2017
11:23:19
пакет в монорепе, под лерной

Alex
14.06.2017
11:23:25
там пара ключей, но больших

Дмитрий
14.06.2017
11:23:31
Alexander
14.06.2017
11:24:40
https://developer.mozilla.org/ru/docs/Web/API/Fetch_API
Благодарю. всего то надо дописать .then(r=> r.json())

Google
Таймураз
14.06.2017
11:24:43
да, супер там просто массивы в массивах (yo dawg) и последний уровень не охота в объект класть
Ты можешь все, что угодно использовать в качестве ключа, JS приведет это к строке

Дмитрий
14.06.2017
11:25:11
пакет в монорепе, под лерной
Тогда откуда "вносить изменения в остальные пакеты"? В принципе, lerna сама следит за актуальностью версий зависимостей

Таймураз
14.06.2017
11:25:20
Благодарю. всего то надо дописать .then(r=> r.json())
Доки- наше все. Нужно уметь отличать вопросы по докам, вопросы, которые можно найти в интернете и вопросы, которые лучше спросить напрямую

Сергей
14.06.2017
11:25:47
Если она действительно общая и есть смысл, то норм
Глянь на atmx.in/rest, atmx.in/rest-ex, atmx.in/rest-koa Есть смысл в монорепо?

Котяй Негодяй
14.06.2017
11:26:17
А если установить значение пустого массива со 100500-ым индексом, то он же насоздаёт пустых элементов до него? Это медленно?

Дмитрий
14.06.2017
11:26:33
Плюс lerna run <comand> -- запустить сразу всо всех репах с такой командой. От банального lerna run start до каких-то более сложных вариантов)

Котяй Негодяй
14.06.2017
11:27:16
Не создаёт по факту
Но вывод напечатает вот такое: [ , , , , ... , 'myValue']

Это как понимать?

Сергей
14.06.2017
11:27:36
Это как понимать?
Просто печатать до индекса

Vladimir
14.06.2017
11:27:48
Это называется "дырка"

Maxim
14.06.2017
11:28:07
Котяй Негодяй
14.06.2017
11:28:21
То есть, он просто создаёт элемент и лишней работы не делает?

Mikhail
14.06.2017
11:28:42
он делает length = 100500, сами элементы не создает

Maxim
14.06.2017
11:28:43
сейчас я делаю апдейт пакета под гитом и перезапускаю софт. Удобнее ли это будет сделать с лерной, без гита и через самоапдейт софта через npm update ?

Сергей
14.06.2017
11:28:45
Vladimir
14.06.2017
11:28:59
Не, при попытке перебрать тоже не делает

Котяй Негодяй
14.06.2017
11:29:01
Сергей
14.06.2017
11:29:16
Google
Котяй Негодяй
14.06.2017
11:29:22
Не, при попытке перебрать тоже не делает
Эм... У него внутри типа индекса что-то есть?

Дмитрий
14.06.2017
11:29:38
Стандартный map не перебирает элементы которых нет

Vladimir
14.06.2017
11:29:40
Ну логически массив это просто объект

Сергей
14.06.2017
11:29:49
Котяй Негодяй
14.06.2017
11:29:57
Но если я сделаю map, то он переберёт и пустые значения.

Да ладно?

Mikhail
14.06.2017
11:30:18
нет, в map/forEach/... проверка на существование

Vladimir
14.06.2017
11:30:21
А если [...list] ?
Так сделает, да

Admin
ERROR: S client not available

Vladimir
14.06.2017
11:30:50
то есть for of отдаст пустые элементы, forEach - нет

Сергей
14.06.2017
11:31:40
Да, вот так и думал

Котяй Негодяй
14.06.2017
11:31:47
А... Вспомнил.

Нужно сначала сделать fill()

Дмитрий
14.06.2017
11:35:46
сейчас я делаю апдейт пакета под гитом и перезапускаю софт. Удобнее ли это будет сделать с лерной, без гита и через самоапдейт софта через npm update ?
lerna publish --skip-npm проапдейтит все версии зависимостей между пакетами и сделает аккуратный релиз обновленных пакетов в git. В prepublish проектов у тебя скорее всего изначально будет грамотная пересборка, поэтому фактически одной командой ты обновляешь всё, делаешь пуш в гит и получаешь воркспейс с актуальным проектом)

@zerobias что думаешь
Думаю можно

У меня и был похожий кейс - много пакетов, держать которые в одном нецелесообразно - там и зависимости для ноды, и чисто браузерные штуки, в общем юзеры бы офигели от списка deps))

Таймураз
14.06.2017
11:40:34
нет, в map/forEach/... проверка на существование
Нет проверки на существование

Дмитрий
14.06.2017
11:40:45
Плюс ещё один бонус монорепы - можно убрать из devDeps каждого пакета нерелевантные ему штуки. Работая с четырьмя пакетами, на все будет всего один инстанс eslint, один flow (вот от этого особенно хорошо, учтывая его жручесть) и так далее

Таймураз
14.06.2017
11:41:29
А, нет, есть Я неправильно затестил

Google
Таймураз
14.06.2017
11:42:43
Более того, .map пробежит только по числовым индексам

Дмитрий
14.06.2017
11:42:44
В плане?

Сергей
14.06.2017
11:43:04
В плане?
Ну установка дев флоу идёт в корень же

Дмитрий
14.06.2017
11:43:34
Ну да

В корне - свой package.json)

Сергей
14.06.2017
11:44:23
А юзать из пакета, в скриптах нет ../../node_modules/.bin/flow ?

Дмитрий
14.06.2017
11:45:23
Так а зачем так юзать, у тебя просто будет один vs code workspace

Сергей
14.06.2017
11:45:38
Билдить например

Не обязательно флоу там

Ещё вопрос есть. Если в лерна ставить независимые версии в конфиге, обновление minor версии изменит всё пакеты или только изменившиеся? Он поставит всем одну версию или в каждом обновит?

Я читал доку и тестил. Но результаты не соответствовали доке

Дмитрий
14.06.2017
12:01:11
Ещё вопрос есть. Если в лерна ставить независимые версии в конфиге, обновление minor версии изменит всё пакеты или только изменившиеся? Он поставит всем одну версию или в каждом обновит?
Обновляешь минорную версию пакета -> лерна смотрит какие пакеты зависят от данного -> если версия не соответствует записи в package.json, то обновить и их тоже

Konstantin
14.06.2017
12:01:26


Zaur
14.06.2017
12:02:27
можно ли из master-кластера вызвать метод воркера и получить результат ?

Дмитрий
14.06.2017
12:04:12
А версию конкретного пакета руками да?
Как пожелаешь) Вообще в идеале при обычном publish лерна просто делает diff и смотрит, какие пакеты изменились со времени последного git release tag и апдейтит их версию

Плюс есть lerna publish --force-publish=package-name

Страница 875 из 2748