来自symfony 4和socket.io的webpack / encore

时间:2018-06-27 15:43:30

标签: symfony webpack socket.io webpack-encore

我尝试在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 )并不能使其更好地工作... 我该怎么办?

2 个答案:

答案 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 上传已编译的文件...然后在我需要部署服务器端应用程序时...)