Lodash встроен в узел? - PullRequest
       12

Lodash встроен в узел?

0 голосов
/ 02 декабря 2018

Это работает без lodash, установленного как зависимость:

const _ = require('lodash');
_.each([1,2,3],console.log);

(нет, у меня нет lodash, установленного глобально)

Я видел где-то что-то вроде nodejs, поддерживающего lodash по умолчанию, но теперь яне могу найти документацию по этому поводу.Это наконец правда?Где я могу прочитать об этом?

PS Наконец-то я нашел и удалил node_modules в своем домашнем каталоге, и вся магия исчезла, теперь этот скрипт выдает ошибку из-за отсутствия зависимости.Спасибо, ребята, за помощь в этом расследовании.

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Не совсем.Не имеет смысла собирать из коробки 100K+ lib и предполагать, что он будет использоваться разработчиком.Например, рассмотрим этот пример Repl

. Это сделает среду узла , а установит все пакеты, указанные в операторах require.Если ничего не предоставлено, это просто node с ничем другим.

Как видите, из коробки вы получите _ is not defined.но как только вы добавите const _ = require('lodash'), это будет auto-install для вас, и вы получите желаемый результат. Так что для удобства это делает инструмент Repl , поэтому вам не нужно делать npm install ... и т. Д. Но из коробки не входит lodash .

Кроме того, в ES6 больше нет вариантов использования lodash, и как только ES6 получит широкую поддержку, спор о совместимости lodash с браузером также не будет иметь большого значения.Поэтому в будущем было бы даже меньше смысла связывать его с узлом .

Однако интересно то, что npm, включенный как deps в репо узла, имеет зависимостей отlodash :).

0 голосов
/ 03 декабря 2018

Я думаю, что Акрион частично прав в том, что он говорит (больше не нуждается в lodash, lodash не является частью узла по умолчанию).

Я предполагаю, почему она работает: у вас есть необходимая библиотека, которая, в свою очередь, зависит от lodash, и какой бы пакет вы ни использовали, он выбирает ее именно таким образом.

Я бы рискнул предположить, что если вы откроете папку node_modules, то там сидит lodash.Проведите сквош через файл package.lock (или файл блокировки пряжи) и посмотрите, что включает в себя lodash.

РЕДАКТИРОВАТЬ Как было обнаружено в комментариях, в домашнем каталоге была папка node_modules

0 голосов
/ 02 декабря 2018

Библиотека не встроена в узел.Вы можете посмотреть полный список встроенных модулей @

https://github.com/nodejs/node/tree/master/lib

...