lodash是否内置在Node中?

时间:2018-12-02 17:47:22

标签: node.js dependencies lodash

这在没有将lodash安装为依赖项的情况下有效:

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

(不,我没有在全球安装lodash)

我在某处看到像nodejs这样的东西在默认情况下支持lodash,但是现在我找不到关于此的任何文档。 最终是真的吗?我在哪里可以读到它?

P.S。最终,我在主目录中找到并删除了node_modules,所有的魔术消失了,现在此脚本由于缺少依赖项而产生错误。谢谢你们在这次调查中的帮助。

3 个答案:

答案 0 :(得分:3)

不是。开箱即用100K+ lib并假定它会被开发人员使用是没有任何意义的。例如,考虑this Repl example

它将执行节点环境 ,并将安装require语句中指定的所有软件包。如果未提供任何内容,则仅是简单的node而已。

开箱即用,您会得到_ is not defined。但是添加const _ = require('lodash')的那一刻,auto-install就会为您所用,您将获得理想的结果。 因此,为方便起见,此操作由Repl工具完成,因此您不必进行npm install ...等操作。但是开箱即用的节点未与lodash打包。 / p>

在ES6中也不再有大量的lodash用例了,一旦ES6得到广泛支持,关于lodash的浏览器兼容性的争论也就没有多大关系了。因此,将其与节点捆绑甚至更毫无意义

但是有趣的是,节点回购中包含为npm的{​​{1}}具有dependencies on lodash:)。

答案 1 :(得分:3)

我认为Akrion所说的话部分正确(不再需要lodash,默认情况下lodash不再是node的一部分)。

我对它为什么起作用的猜测是,您有一个必需的库,而该库又依赖于lodash,并且您使用的任何捆绑程序都以这种方式进行选择。

在这里我可能会冒险说,如果您打开node_modules文件夹,lodash就坐在那儿。遍历您的package.lock文件(或yarn lock文件),看看其中包括lodash。

编辑 通过评论发现,主目录中有一个node_modules文件夹

答案 2 :(得分:2)

该库未内置在节点中。您可以查看内置模块的完整列表@

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