我尝试在symfony 4项目中使用socket.io,但仍然遇到一些问题。 我使用了 npm install --save socket.io
然后我得到这个:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ socket.io@2.1.1
added 101 packages in 9.519s
但是我在想“没关系,它只是注意到我,看起来像是可选的”。
当我使用 webpack / encore 时仍然可以:
PS C:\wamp64\www\PROJETS\my-projet> ./node_modules/.bin/encore dev
Running webpack ...
ERROR Failed to compile with 2 errors 15:41:22
These dependencies were not found:
* fs in ./node_modules/socket.io/lib/index.js
* uws in ./node_modules/engine.io/lib/server.js
To install them, you can run: npm install --save fs uws
但是当我使用 webpack / encore 时,安装他们想要的东西( fs uws )并不能使其更好地工作... 我该怎么办?
答案 0 :(得分:1)
socket.io
是服务器端的node.js程序包,不应使用webpack运行。也许您正在寻找socket.io-client?否则,您应该使用单独的node.js环境。
答案 1 :(得分:0)
它有效,客户端现在可以编译。我使用了从'socket.io-client'导入io; 。
服务器端我是通过这种方式完成的:让io = require('socket.io')(服务器); 。
但是我想(服务器端)部署 webpack / encore 不会编译库,那么我应该将它们添加到Server App的子文件夹中吗?
类似的东西:
Symfony 4 project
| assets
| bin
| config
| server_app
| | server_app.js
| | lib
| | | here lib for socket.io
| public
| src
| template
...
(我的问题似乎很愚蠢) 如果我不会在服务器上添加所有 node_modules 文件夹,是否应该将 socket.io的文件夹从 node_modules 复制粘贴到新文件夹“ lib ”以上指示? (全部或部分)
否则部署它是错误的方法吗? (对不起,我不熟悉,我通常只从 Encore 上传已编译的文件...然后在我需要部署服务器端应用程序时...)