你不能将socket.io安装为全局包吗?

时间:2013-11-27 15:48:25

标签: node.js socket.io

我尝试使用-g开关

安装socket.io
npm install -g socket.io

and it installed correctly I think.

但运行应用程序会抛出无法找到模块错误。

本地安装,即如果我的项目/包中的node_modules中存在socket.io,则可以正常工作。

所以不能全局安装吗?

screenshot

2 个答案:

答案 0 :(得分:4)

您误解了全局安装的含义。它允许您直接从控制台访问包。但是,如果您希望将require打包到自己的应用程序中,则应将其作为依赖项添加到packaje.json中并在本地安装。

以下是npm documentation的引文:

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

答案 1 :(得分:1)

当您全局安装软件包时,您所说的是您要在shell中使用它(cmd.exe)。像nodemon之类的东西就是这样一个包你可以全局安装但不包含在本地,因为它不需要包含在你的应用程序中运行,而是用来让你作为开发人员受益。

当您的应用需要运行时,您可以在没有-g开关的情况下安装软件包。在这种情况下,必须安装socket.io.请注意,本地安装的软件包应该放在packages.json文件中,以便日后安装应用程序的任何人都可以自动获取所包含的软件包。全局包不会出现在此处。