
Дмитрий
12.01.2017
04:57:38

Sergey
12.01.2017
04:58:02
хм, разве не все руководствуються стандартом версионности?

Дмитрий
12.01.2017
04:58:29
Не все его правильно понимают

Anton
12.01.2017
04:58:40
И даже стандарты то разные бывают

Google

Дмитрий
12.01.2017
04:59:11
Ну в CHANGELOG.md указываешь свой стандарт

Anton
12.01.2017
04:59:30
А самое главное - один человек может без задней мысли воспользоваться недокументированной фичей библиотеки, а автор без задней мысли ее поменяет с изменением версии в четвертом знаке после запятой.

Дмитрий
12.01.2017
04:59:46

Anton
12.01.2017
05:00:04

Sergey
12.01.2017
05:02:36
есть спецификация
http://semver.org/
и в npm об этом говориться
https://docs.npmjs.com/cli/version
ну а кто не хочет читать, можете видео на русском посмотреть
https://youtu.be/CrevZgTc7ow?list=PLDyvV36pndZFWfEQpNixIHVvp191Hb3Gg

Яков
12.01.2017
08:38:03
`1

Roman
12.01.2017
08:42:06

Pavel
12.01.2017
08:51:00

Valeriy
12.01.2017
09:12:02
Вопрос по теме: как лучше организовать вызов методов модуля про базу данных из кучи разных функций в замыканиях? Может я туплю, но тут надо много раз инициализировать связб с БД

Google

Pavel
12.01.2017
09:14:29

Valeriy
12.01.2017
09:15:28

Evgeny
12.01.2017
09:19:57

Дмитрий
12.01.2017
09:20:45
Дартаньян

Vladimir
12.01.2017
09:21:00
а без белого плаща, много любителей лезть в говно?

Evgeny
12.01.2017
09:21:43
Не обязательно любить дебажить чужой говнокод, но часто надо

Valeriy
12.01.2017
09:25:26
спасибо альтруисту за наводку по теме, про кеширование как-то пропустил
https://nodejs.org/dist/latest-v6.x/docs/api/modules.html
Caching
#
Modules are cached after the first time they are loaded. This means (among other things) that every call to require('foo') will get exactly the same object returned, if it would resolve to the same file.
Multiple calls to require('foo') may not cause the module code to be executed multiple times. This is an important feature. With it, "partially done" objects can be returned, thus allowing transitive dependencies to be loaded even when they would cause cycles.
If you want to have a module execute code multiple times, then export a function, and call that function.

Дмитрий
12.01.2017
09:36:10
Обнаружил данную фичу самостоятельно, когда хотел перезагружать тестируемый модуль в repl при изменениях ?

Vladimir
12.01.2017
09:36:49
документацию же можно читать
чистить require-кеш несложно

Дмитрий
12.01.2017
09:37:22
Ааа, ок

Pavel
12.01.2017
09:38:20

Vladimir
12.01.2017
09:38:21
у синдре и флоатдропа есть модули на эту тему
бывает, надо да

Таймураз
12.01.2017
09:39:45
Кеш чистить при разработке, чтобы заново файл парсился?

Vladimir
12.01.2017
09:41:40
нет, при разработке такое не нужно
нужно когда работаешь близко к механизму require

Таймураз
12.01.2017
09:42:31
Просто пока что не вижу смысла, если можно вынести код в функцию и ее экспортить

Google

Vladimir
12.01.2017
09:43:23
https://github.com/sindresorhus/require-uncached

Таймураз
12.01.2017
09:44:36

Vladimir
12.01.2017
09:45:21
ничто, если это твой модуль
и невозможно если не твой

Таймураз
12.01.2017
09:46:05

Vladimir
12.01.2017
10:00:39
Единственный нормальный способ перезагрузить модуль - это перезапустить процесс

Таймураз
12.01.2017
10:04:23

Vladimir
12.01.2017
10:07:24
Это проблема конкретного модуля

Evgeny
12.01.2017
10:07:59
мне в тестах приходилось сбрасывать кеш

Таймураз
12.01.2017
10:09:51

Paruyr
12.01.2017
10:36:23

Pavel
12.01.2017
10:45:56

Andrew
12.01.2017
11:43:19


Pavel
12.01.2017
11:49:00

Aleksey
12.01.2017
11:52:50
в es5 нотации это было как-то очевиднее. module.exports в общем случае было объектом создавшемся при первом проходе. и было понятно что если реквайришь этот объект то реквайришь именно ссылку

Никита
12.01.2017
13:54:29
чистить require-кеш несложно
1. https://github.com/nodejs/node/issues/8443
2. С введением esm не факт, что его всё ещё можно будет чистить вообще.

Vladimir
12.01.2017
14:10:28
Да можно скорее всего
Но все равно не нужно

Google

Vladimir
12.01.2017
14:12:41
хотя честно говоря не вполне понимаю, как может работать импорт commonjs из es6

Никита
12.01.2017
14:14:49

Vladimir
12.01.2017
14:22:27
они ведь обсуждали в сентябре что будет работать норм
@ChALkeR @vkurchatkin я тоже не до конца понимаю, но без этого esm/cjs интероп ломается

Vladimir
12.01.2017
14:23:52
Еще мне интересно как будет __dirname и __filename

Aleh
12.01.2017
14:26:40

Admin
ERROR: S client not available

Ramzes
12.01.2017
14:27:22
Поясните за преимущества коа перед эксперссом?

Никита
12.01.2017
14:29:06
Ты последний пропозал читал?
https://github.com/nodejs/node-eps/pull/39
Там написано английским языком — не будет в esm __dirname, __filename, require и прочего.
Но его не приняли ещё.

Vladimir
12.01.2017
14:33:37
чет в итоге не понятно, на чем то остановились или нет
__dirname и __filename объективно полезные вещи

Никита
12.01.2017
14:34:11

Vladimir
12.01.2017
14:34:12
но можно делать import { __dirname, __filename } from 'node' или что то такое

Aleh
12.01.2017
14:35:06

Vladimir
12.01.2017
14:35:21
ну не сказал бы - наоборот
это сейчас хак

Ҫѐҏӗѫӑ
12.01.2017
14:37:30
+
но вообще энв и в глобал снова себе может засунуть чот

Google

Aleh
12.01.2017
14:38:05
и сейчас тоже хак)

Vladimir
12.01.2017
14:38:25
ну так они и не глобалы
в том и суть

Ҫѐҏӗѫӑ
12.01.2017
14:39:06
вообще там у tc39 идея когда-нибудь сломать совместимость и делать такое:
import { cos } from 'Math';
и стдлиб в модули дефолтные поместить

Vladimir
12.01.2017
14:39:38
надо заранее зарерзервировать неймспейс под стандартные модули

Aleh
12.01.2017
14:39:38
и норм

Ҫѐҏӗѫӑ
12.01.2017
14:39:56
а потом окажется, что в ноде занято чота
точнее не в ноде, а в npm
что еще хуже
crypto в ноде и браузере вроде не одинаковые
уже

Pavel
12.01.2017
14:43:07
да это ж нпм, захотят - подвинут, если на уровне стандарта будет

Ҫѐҏӗѫӑ
12.01.2017
14:44:26
тогда не будет смысла использовать js как динамический язык в принципе
это какой-то c++ выходит
с несовместимыми компиляторами