webpack/encore 来自 symfony 4 socket.io

webpack/encore from symfony 4 with socket.io

我尝试在我的 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

但我在想"it's ok, it just notice me and it look optionnal"。

仍然当我使用 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

但是安装他们想要的东西 (fs uws) 并没有让它在我使用 webpack/encore 时更好地工作。 .. 我该怎么办?

socket.io 是服务器端 node.js 包,您不应该 运行 使用 webpack。也许您正在寻找 socket.io-client?否则,您应该使用单独的 node.js 环境。

成功了,客户端可以编译了。我使用 从 'socket.io-client';.

导入 io

服务器端我是这样实现的:let io = require('socket.io')(server);.

但我在想(服务器端)部署 webpack/encore 不会编译库,那么我应该将它们添加到我的服务器应用程序的子文件夹中吗?

像这样:

Symfony 4 project | assets | bin | config | server_app | | server_app.js | | lib | | | here lib for socket.io | public | src | template ...

(我的问题可能看起来很愚蠢) 如果我不想在我的服务器上添加所有 node_modules 文件夹,我应该从 node_modules 到上面指出的新文件夹“lib”? (全部或部分)

否则部署方式不对? (抱歉,我不熟悉它,我通常只从 Encore 上传编译后的文件...然后当我需要部署服务器端应用程序时...)