@nodejs_ru

Страница 190 из 2748
KlonD90
09.09.2016
10:00:14
это фишки для фронт енд хипстоты

Alexander
09.09.2016
10:02:39
https://gist.github.com/branneman/8048520 все варики, но меня ни один не прельщает. кроме наверное globals

Vladimir
09.09.2016
10:02:41
это фишки для фронт енд хипстоты
Да, там нет ни того, ни другого

B~Vladi
09.09.2016
10:04:05
Бывают ситуации, когда в приложении есть модули-хелперы этого приложения и лежат рядом с ним и в глобале никому не сдались. Делать для них отдельную репу (и тем более заливать в npm), версионирование, кажется лишними хлопотами. Пока лучшего решения для такого кода я не вижу, хоть оно и имеет свои недостатки.

Google
B~Vladi
09.09.2016
10:06:27
Зато не подгорает при очередном require, когда надо понять где лежит модуль относительно файла. Полагаться на proccess.pwd тоже нельзя.

B~Vladi
09.09.2016
10:07:27
А лучше выкинуть require

и еще как
даа бро, я чувствую твою боль

Vladimir
09.09.2016
10:08:08
Вообще если весь код в отдельной папке, то в неё можно положить node_modules

B~Vladi
09.09.2016
10:08:21
я про это и говорю

Paul
09.09.2016
10:08:32
модули, которые ты запрашиваешь через ../../
Никто не запрещает использовать NODE_PATH и добавить корень проекта. Общепринятая практика в сях/крестах (см гугловский стайлгайд), в питоне (пакеты) и в расте

Константин
09.09.2016
10:08:34
а чем с NODE_PATH плохо?

Vladimir
09.09.2016
10:08:44
Deprecated

Paul
09.09.2016
10:09:18
Deprecated
Пруф?

B~Vladi
09.09.2016
10:09:45
Пруф?
Уже как несколько лет

Юрий
09.09.2016
10:09:46
Deprecated
Разве? https://github.com/nodejs/node/issues/1627#issuecomment-102528465

Paul
09.09.2016
10:10:02
Уже как несколько лет
C require.path не путаешь?

Google
B~Vladi
09.09.2016
10:10:10
C require.path не путаешь?
Вот тоже подумал

Как раз на NODE_PATH перешли

Paul
09.09.2016
10:10:54
Ну, что ../../../.. не вариант, это однозначно

Nikolay
09.09.2016
10:10:58
Никто не запрещает использовать NODE_PATH и добавить корень проекта. Общепринятая практика в сях/крестах (см гугловский стайлгайд), в питоне (пакеты) и в расте
основная проблема в том, что это контринтуитивно. когда я вижу require('some-module'), я думаю, что это какой-то внешний пакет, когда я вижу require(./../some-module) - то понимаю, что это что-то внутреннее.

Vladimir
09.09.2016
10:11:07
Там в треде есть

Константин
09.09.2016
10:11:33
на вебшторм кстати неплохой плагин есть - commonjs autocomplete

Paul
09.09.2016
10:11:33
Это от незнания алгоритма поиска модулей
Нет, это де-факто практика такая, и тот же самый WS сейчас вообще игнорит node_modules

Nikolay
09.09.2016
10:12:21
Можно ./ добавлять перед app :)

B~Vladi
09.09.2016
10:12:28
У тебя де-факто, а у меня фактически - алгоритм есть и он работает

Paul
09.09.2016
10:12:40
Можно ./ добавлять перед app :)
Не будет работать же

Paul
09.09.2016
10:12:55
У тебя де-факто, а у меня фактически - алгоритм есть и он работает
Это не у меня де-факто, а у сообщества. И опыт WS это подтверждает.

B~Vladi
09.09.2016
10:13:18
Код VS сообщество

Сообщество-то какое? Верстальщики приемущественно))

Paul
09.09.2016
10:14:09
Ладно, я не знаю о чём мы говорим. Покажи пример используемой библиотеки, где так используется node_modules, тогда будет о чём говорить.

B~Vladi
09.09.2016
10:14:10
И питонисты

Google
B~Vladi
09.09.2016
10:15:56
А кто с этим спорит) Я как раз наоборот подтверждаю явление. Но это не отменяет того, что причиной бомбежки является стадный инстинкт и нежелание читать код

KlonD90
09.09.2016
10:16:47
супер

код для людей пишешь прежде всего

Vladimir
09.09.2016
10:17:43
А в чем проблема просто использовать require как положено?

Nikolay
09.09.2016
10:18:40
А в чем проблема просто использовать require как положено?
Один из аргументов, который я слышал: "при переносе файлов внутри структуры проекта, придется везде менять относительные пути" :)

B~Vladi
09.09.2016
10:18:52
А как положено? Если механизм поиска модулей реализован в самом require и я использую это, почему вдруг это стало "не положено".

Paul
09.09.2016
10:19:07
Потому что идиомы.

B~Vladi
09.09.2016
10:19:31
Давайте объявим эту фичу depracated

Paul
09.09.2016
10:19:42
Ты можешь называть переменные в under_score, и это будет работать и это будет "Я используя механизм резолва переменных", но это будет неидиоматично.

B~Vladi
09.09.2016
10:20:00
Не передергивай

Paul
09.09.2016
10:20:16
А почему бы и нет?

B~Vladi
09.09.2016
10:20:50
Ну если у меня 3 версии lodash, то я таки напишу что-то похожее.

Константин
09.09.2016
10:20:56
Всегда делал симлинк в node_modules, только вчера начал делать с NODE_PATH - и на тебе говорят будет deprecated, так это так?

Paul
09.09.2016
10:21:14
Не deprecated, см выше ссылку на коммит и закрытый PR

Vladimir
09.09.2016
10:24:21
deprecated

просто его не планируют удалять

legacy, в общем

Paul
09.09.2016
10:25:21
deprecated
Пруф?

Vladimir
09.09.2016
10:25:38
It's been semi-deprecated for ages but we have been stupid enough to leave it in the documentation without so much as a deprecation notice

Paul
09.09.2016
10:26:17
Что в замен-то?

Google
Nikolay
09.09.2016
10:26:22
https://github.com/nodejs/node/issues/1627

Vladimir
09.09.2016
10:26:41
Что в замен-то?
использовать относительные пути

https://github.com/nodejs/node/blob/be68b68d4863f0d389cc46fdf6f1cbcd1b241d0a/doc/tsc-meetings/io.js/2015-04-08.md

Paul
09.09.2016
10:30:08
использовать относительные пути
Относительные пути отлично работают, когда мы говорим про структурную парадигму и строгую композицию. Вот только реальный мир не такой, увы. Как предлагаешь бороться с каким-нибудь ../../../../resources/offers.js?

Vladimir
09.09.2016
10:30:23
Делать нормальную структуру папок

Vladimir
09.09.2016
10:31:19
https://github.com/nodejs/node/issues/146

Admin
ERROR: S client not available

Vladimir
09.09.2016
10:31:53
С другой стороный, никто не мешает написать myRequire, который делает то, что вы хотите

Nikolay
09.09.2016
10:32:38
И как это переорганизовать? =)
Делать все реквайры на верхнем уровне и потом прокидывать в модули ниже например, а-ля dependency injection.

Paul
09.09.2016
10:32:56
Vladimir
09.09.2016
10:33:05
> Paul И потерять поддержку IDE и прочих анализаторов? да

Vladimir
09.09.2016
10:33:34
поддержку вы потряете в любом случае

Paul
09.09.2016
10:33:49
Нет, ибо NODE_PATH есть и о нём знают

Обязаны знать, во всяким случае

Vladimir
09.09.2016
10:34:43
он есть, но он есть где и когда?

Nikolay
09.09.2016
10:34:44
ОМГ. Серьёзно?
Это один из вариантов, и в общем случае не вижу в нем ничего криминального. Чем меньше реквайров внутри модулей, тем лучше тестируемость, опять же.

B~Vladi
09.09.2016
10:34:47
Обязаны знать, во всяким случае
А про алгоритм поиска не обязаны? Двойные стандарты какие-то

Google
Vladimir
09.09.2016
10:34:57
откуда ide знает, какой NODE_PATH будет при запуске проекта?

Paul
09.09.2016
10:35:03
А про алгоритм поиска не обязаны? Двойные стандарты какие-то
Обязана про алгоритм поиска, я же не спорю

откуда ide знает, какой NODE_PATH будет при запуске проекта?
А откуда она знает, что при запуске .my-file будет тем же?

Vladimir
09.09.2016
10:35:51
каким тем же?

Nikolay
09.09.2016
10:37:52
Для тестирования никто не мешает подменить require.
Никто не мешает, но, имхо, всякие proxyquire - это "грязный" подход. Да, где-то без этого не обойтись, но чем такого меньше, тем лучше, как по мне.

Nikolay
09.09.2016
10:40:32
Почему грязный?
Потому что, одно дело когда у тебя есть модуль, у которого есть четкая сигнатура api, и ты знаешь, что он принимает и возвращает, даже не залезая внутрь самого модуля. И совсем другое, если внутри модуля используются какие-то зависимости, объявленные через require.

Константин
09.09.2016
10:43:00
откуда ide знает, какой NODE_PATH будет при запуске проекта?
в вебшторм для нужных директорий mark directory as -> resourse root и все хорошо, знает

Nikolay
09.09.2016
10:44:01
http://krasimirtsonev.com/blog/article/how-require-import-may-decrease-your-testability вот один из примеров того, о чем я говорю

Paul
09.09.2016
10:45:24
И где там про замену require?

О чём ему в комментах и намекнули

Nikolay
09.09.2016
10:47:10
ты предлагаешь отказаться от модульного подхода в пользу.. чего?
Я не предлагаю отказываться от модульного подхода. Я всего лишь говорю, что зачастую лучше, когда существует некий единый aggregation root, чем размазанные по всему проекту require, особенно "снизу вверх" по структуре (require('./../../../../offer')).

Paul
09.09.2016
10:48:10
Эм. Ты подменять будешь целый модуль, после резолва, а не этот путь.

Nikolay
09.09.2016
10:48:44
Паш, я вообще верстальщик, и ни на чем не настаиваю, к чему этот спор? :)

Paul
09.09.2016
10:49:36
Ну ок.

YOda
09.09.2016
12:30:38
Всем привет, кто-нибудь может подсказать хорошую библиотеку для распарса жесткой xml ?

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