为什么Bower不能安装socket.io.js文件?

3
当我运行时,Bower可以正常安装,但是在查看安装文件时却没有socket.io.js文件。问题在于当尝试在我的项目中使用bower组件作为依赖项时,我无法使用debowerify来require('socket.io') ,因为它正在寻找bower_components/socket.io/socket.io.js。有人知道这是为什么以及我需要做什么来解决这个问题吗? 这就是bower install socket.io安装的样子 我得到的错误信息是:

错误:未找到模块"./../../bower_components/socket.io/socket.io.js"

1个回答

3
从查阅 http://socket.io/docs/# 的入门指南中可以了解到socket.io有两个组件,一个用于服务器端代码,一个用于客户端代码。你可以从这里单独安装客户端代码 https://www.npmjs.com/package/socket.io-client,这为我们提供了一些线索...
从上文可知:
“/socket.io/socket.io.js”是socket.io-server自动公开的socket.io-client独立构建。
这实现了通过服务器端代码访问客户端代码的小技巧,这也可以解释在bower_components目录下安装时看到的差异。
对于使用express的node应用程序,你只需通过以下方式将socket.io.js引用到客户端html中即可:<script src="socket.io.js"></script>,然后引用由此引入的全局对象io
希望能对你有所帮助。

1
问题再次出现的原因是 require 寻找的是 socket.io-client.js 文件而不是 socket.io.js 文件。我现在所做的就是在 bower_components 中要求确切的文件 require('./../../bower_components/socket.io-client/socket.io.js'),这似乎可以正确地导入它。我只是有点失望,因为我必须要求确切的路径,因为它们的文件名与其文件夹不同(不像其他 bower js 文件)。 - John Ruddell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接