У меня в фениксе следующая структура папок:
web/ static/ js/ app.js script.js socket.js
app.js имеет …
import socket from «./socket» import script from «./script»
brunch-config.js имеет …
files: { javascripts: { joinTo: «js/app.js» } // … }
script.js имеет …
$(‘#some-button’).on(‘click’, function() { connectToChannel(data); });
socket.js имеет …
import {Socket} from «phoenix» let socket = new Socket(«ws://example.com/updates», {params: {«auth-token»: «AUTH-TOKEN»}}) function connectToChannel(data) { socket.connect() let channel = socket.channel(«updates:new», {}) channel.join() .receive(«ok», resp => { console.log(«Joined successfully», resp) }) .receive(«error», resp => { console.log(«Unable to join», resp) }) channel.on(«update», payload => { console.log(payload); }) } export default socket
… но когда я нажимаю some-button, в консоли браузера появляется следующая ошибка:
Uncaught ReferenceError: connectToChannel не определен
Соединение будет успешным, если я возьму содержимое socket.js и помещу его в script.js, но я хотел бы сохранить их отдельно.
Источник: