2

node_modules 依赖项应该在应用程序代码的开头全局声明,还是在需要它们时在本地声明?我想知道是否有最佳实践。

例如,我index.js在需要时使用和 require 脚本引导我的应用程序。security.js例如,我的模块可能需要使用node_hash. security.js现在,我是否应该要求

var node_hash = require('node_hash')

还是全球需要它,index.js所以它可以用于security.js(但也适用于其他所有东西)?

4

1 回答 1

2

在 Node 中,实际上并没有“全局要求”的概念。当您将一个模块引入另一个模块时,所需的模块在您将其引入的模块中可用。如果您想在其他地方使用该必需模块,则需要再次要求它(或以某种方式将返回的对象传递给您的其他模块)。

因此,正确(唯一,真正)的答案是在需要的地方要求他们。请注意,Node 使用了一个require 缓存,因此 required 模块只真正评估一次,并且对于同一个文件的多个 require 返回相同的对象。

[编辑] 分配给声明的变量而不var将其分配给global范围(例如,它可以通过global在节点中访问)。你很少想这样做;不仅难以确定变量的声明位置,而且还可能导致命名空间问题。

于 2012-05-06T23:08:19.913 回答