How to use JQuery in Laravel (NPM)

Stefan Bogdanescu

Founder & Senior Architect · 2026-06-29

Laravel Company

How to Use jQuery in Laravel (NPM): Bridging Frontend Assets and Backend Logic

Welcome to the world of Laravel development! It’s very common to encounter questions about how frontend libraries like jQuery fit into the ecosystem, especially when you are using modern tooling like NPM, Webpack, or Vite. You've correctly identified that having jquery listed in your package.json file suggests it’s part of your project dependencies, but understanding how to actually link and compile these assets is the key to success.

As a senior developer working within the Laravel framework, I can assure you that managing frontend assets involves understanding the separation between CSS (styling) and JavaScript (behavior). Let's break down exactly how jQuery interacts with your Laravel setup.

Understanding Frontend Asset Management in Laravel

The confusion often arises because styling (CSS) and interactivity (JavaScript) are handled through different mechanisms, even when both are managed by a single asset pipeline like Laravel Mix or Vite.

When you see the Bootstrap link:

html
<link rel="stylesheet" href="/css/app.css">

This tells the browser to pull in a compiled CSS file. This process usually involves compiling Sass (if using Bootstrap source files) into standard CSS, which is then bundled by your build tool.

jQuery, on the other hand, is a JavaScript library that needs to be included and often needs to be properly bundled or loaded before your main application scripts run.

jQuery and NPM Dependencies

Your observation regarding package.json:

json
"devDependencies": {
    // ...
    "jquery": "^3.1.1",
    // ...
}

This confirms that the jQuery library is installed locally within your node_modules directory, making it available for use by your JavaScript files during development and compilation. However, simply installing it doesn't automatically link it to your final HTML view or compile it correctly alongside your other assets unless you explicitly instruct your build process to handle it.

Practical Steps: Integrating jQuery Correctly

The method you use to integrate jQuery depends heavily on whether you are using older Laravel Mix setups or newer Vite configurations. The goal is always to ensure the compiled JavaScript file containing jQuery logic is loaded correctly in your Blade views.

1. Using Laravel Mix (Older/Traditional Approach)

In a traditional setup, you typically import libraries directly into your main JavaScript entry point (e.g., javascript.lock or your main .js file).

Step 1: Import jQuery in your main JS file:
Ensure your primary script imports the library. This allows Webpack/Mix to process the dependency.

javascript
// Example: app.js or main.js
// Import jQuery first, as it is a dependency for other scripts
import 'jquery';

// Now you can write your custom logic
$(document).ready(function() {
    // Your jQuery code here
    console.log("jQuery loaded successfully!");
});

Step 2: Compile Assets:
You run your build command to compile everything, including the imported jQuery code into your final assets.

bash
npm run dev

Step 3: Link in Blade:
Your main layout file links to the compiled JavaScript bundle.

html
<script src="{{ mix('js/app.js') }}"></script>

2. The Modern Approach (Vite)

If you are using Vite, the process is similar but relies on standard ES module imports within your JavaScript files:

Step 1: Import jQuery:
Import it directly in the file where you need it.

javascript
// Example: main.js
import $ from 'jquery'; // Vite handles importing node_modules packages seamlessly

$(document).ready(function() {
    // Your jQuery code here
    console.log("jQuery loaded successfully via Vite!");
});

Step 2: Compile Assets:
Vite automatically handles the dependency resolution when you run npm run dev.

Conclusion

To summarize, having jQuery installed via NPM is the first step; the second, and most crucial, step is integrating it correctly into your asset pipeline. Think of it like this: CSS needs to be compiled for presentation, and JavaScript (including jQuery) needs to be bundled for execution. By explicitly importing jquery in your source files and ensuring your build tool (Mix or Vite) processes those imports, you ensure that the final code delivered to the browser is functional and correctly linked, which aligns perfectly with modern Laravel development practices found on resources like laravelcompany.com. Master this asset management, and you will be building robust applications efficiently!