Webpack / Encore от Symfony 4 с socket.io - PullRequest
0 голосов
/ 27 июня 2018

Я пытался использовать socket.io в моем проекте Symfony 4, но все же у меня возникают некоторые проблемы. Я использовал 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

Но устанавливайте то, что они хотят ( fs uws ), не заставляйте его работать лучше, когда я использую webpack / encore ... Что мне делать?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Работает, клиентская часть теперь может быть скомпилирована. Я использовал import io из «socket.io-client»; .

На стороне сервера я сделал это следующим образом: 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 на мой сервер, я должен скопировать папку socket.io's из папки node_modules в новую папку " lib указано выше? (полностью или частично)

Иначе это неправильный способ его развертывания? (извините, я не знаком с этим, я обычно загружаю только скомпилированный файл из Encore ... тогда, когда мне нужно развернуть приложение на стороне сервера ...)

0 голосов
/ 28 июня 2018

socket.io - это пакет node.js на стороне сервера, вы не должны запускаться с использованием веб-пакета. Может быть, вы ищете socket.io-client ? В противном случае вам следует использовать отдельную среду node.js.

...