【问题标题】:What is the difference between local and global module in Node.js? When to use local and global module?Node.js 中的本地模块和全局模块有什么区别?何时使用本地和全局模块?
【发布时间】:2015-06-14 08:15:49
【问题描述】:

我们可以使用 require 函数访问本地模块,但不能通过它访问全局模块。 我在某处读到要使用全局模块,我们需要将其设为本地然后通过 require 函数导入它。 所以如果我们不能直接访问全局模块,那还有什么用呢。

【问题讨论】:

  • 你的代码是什么样子的?

标签: node.js npm node.js-stream node.js-client node.js-domains


【解决方案1】:

你应该:

  • 如果您要 require() 模块,请在本地安装它。
  • 如果要在命令行上运行模块,请全局安装它。

【讨论】:

  • 感谢您的回复。你能举一个通过命令行运行全局安装模块的小例子吗?
  • 我个人使用 nodemon 作为全局模块 (npm install -g nodemon) 来运行服务器并在源代码更改时自动重新启动它(非常适合开发)。所以在这种情况下,而不是例如node server.js 我执行nodemon server.js ;)
  • 再次感谢您的回复 tomrac。但这是全局模块的特定用途。你能告诉我它的一般用途吗?
  • 我认为你可以在这里找到很好的解释:blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation。说到我,我总是使用本地模块,除非我想在 shell 或命令行中使用它。然后我没有版本控制问题:)
  • 谢谢汤姆拉克。这个链接真的帮助我理解了这个概念。 :)
【解决方案2】:

我认为在我看来,您将在代码中需要的模块必须在您的项目本地,或者您可以说必须存在于您的 node_modules 目录中

并且作为命令工作的模块必须全局安装。 例子是 express-generator,jsdocs,mocha

【讨论】:

    【解决方案3】:

    根据我的经验,全局节点模块的一般用途是:

    如果我所有的应用程序都使用相同的节点模块(相同的版本或者我不在乎哪个版本,最新的对我来说很好),那么我 将全局安装该节点模块。 一个很好的 example.example 将是我用来测试的节点模块——例如摩卡。

    【讨论】:

    • 有没有办法访问全局节点模块。如果否,则没有安装它的理由。如果是,那我将如何使用它?
    • 当然可以访问,不然何必安装呢,我想tomarc已经说明了一些用法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 2012-07-14
    • 2014-09-16
    • 2012-10-17
    相关资源
    最近更新 更多