Ваша ошибка:
Identifier 'socket' has already been declared
, что означает, что вы не можете написать:
let socket = "abc"
let socket = "def"
И вы действительно делаете это в app.js
:
//********* HERE **************
import socket from "./socket"
import {Socket, Presence} from "phoenix"
window.Presence = Presence;
//********* AND HERE ***********
let socket = new Socket("/socket", {
params: {user_id: window.location.search.split("=")[1]}
})
Строка:
import socket from "./socket"
создает переменную с именем socket
, поэтому вы не можете впоследствии указать js создать другую переменную с именем socket
, которую вы здесь делаете:
let socket = new Socket("/socket", {
params: {user_id: window.location.search.split("=")[1]}
})
Я бы попытался избавиться от следующего оператора импорта в app.js
:
import socket from "./socket"
Если вам действительно нужен импортированный socket
в app.js (который, кажется, неслучай), вы можете присвоить socket
другое имя при импорте.Смотрите здесь .Кроме того, вы можете назвать переменную сокета, которую вы объявили в app.js, как-нибудь еще:
let presence_socket = new Socket("/socket", {
params: {user_id: window.location.search.split("=")[1]}
})