andrewb

andrewb

Hi,

I have a new Phoenix project (Latest versions of everything) and have a problem when I use:

import socket from "./socket"

I am using jQuery to highlight my menu and each menu item has an icon from Font Awesome. In my app.js I am defining jQuery like this:

window.$ = $;

and the script in my base layout HTML is:

var page = window.location.pathname.split('/')[1]
$('#' + page).toggleClass('active')

I am also importing the icons in app.js:

import { faUser } from "@fortawesome/pro-light-svg-icons/faUser";
library.add(faUser);

when I use the import statement for sockets I get an error uncaught reference error: $ is undefined and my icons disappear.

I have tried moving script to view render function but same problem exists … only thing that fixes it is commenting out the import for sockets.

Thanks in advance,

Andrew

Showing Posts 1 to 5

peerreynders

peerreynders

That would imply Phoenix 1.4 and webpack.

Correction: For webpack 4 imports-loader.
GitHub

and the script in my base layout HTML is:

This might be a problem because as AFAIK webpack deals with modular JavaScript, not script in the page. So the easiest way to deal with that is to install Phoenix with --no-webpack (see also).

andrewb

andrewb OP

Thanks, but it all works fine when not using Sockets … I am trying to work out why importing that script makes a difference.

Andrew

chensan

chensan

When using webpack, there’s no global $. You have to import it yourself, you might try:

import $ from 'jquery'
window.$ = $
peerreynders

peerreynders

I am trying to work out why importing that script makes a difference.

Just because it worked before doesn’t mean it’s a good idea.

Mixing in-page script and modules is a Bad Idea™.

If you plan to use webpack move your code into a module (or all of it into app.js). I described the process in principle here (for Brunch - but the idea is the same). For some more background into bundling see Modern JavaScript Explained For Dinosaurs.

andrewb

andrewb OP

:grinning: I like the trademark and the assumption I am a dinosaur … I am!

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
mnkhod
So i have been using ash framework for a while and i love it. However currently the issue im having with ash framework is the error handl...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New

Other Trending Topics Top

Potions
A new screencast on live LiveView updates with PubSub, the Oban Web dashboard, and smarter retries. Part 2 of 2. Screencast + full walkth...
New
GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews