Installing NPM Packages in Laravel Application

Learn how to install npm packages in Laravel with Vite. Step-by-step 2025 tutorial covering asset build, dev vs prod setup, and best practices.

Installing NPM Packages in Laravel Application

In a Laravel project, npm packages mostly act as development dependencies. You’ll need them locally to build and bundle assets like JavaScript and CSS. Once you run commands like npm run dev or npm run build, these get compiled down into final files your app can actually serve.

If your project is already working on production, it usually means those compiled assets are in place or you’ve set up the server to handle the build. On production, instead of pulling in everything, it’s better to run npm install --omit=dev so you only get what’s really needed to serve users.

And if your package.json doesn’t list actual dependencies, there’s no need to do this step at all for production.

Now, let’s see why npm is such a big deal in modern Laravel projects.

Why You Need NPM in Laravel Projects?

Laravel might be all about PHP under the hood, but your frontend still needs a modern toolchain. That’s where npm steps in, especially now that Laravel ships with Vite by default.
  • Modern UI tools: Bring in Vue, React, or Alpine.js to build interactive screens.
  • Styling frameworks: Tailwind CSS or Bootstrap speed up your design workflow.
  • Helper libraries: Axios handles HTTP requests; Lodash adds handy utilities.
💡 Quick insight: The npm registry now hosts over 2 million packages and serves tens of billions of downloads per week, a clear sign of  how vital npm is, even for PHP-driven frameworks like Laravel

Step-by-Step: Installing NPM Packages in Laravel

Adding npm packages to a Laravel project isn’t complicated. Here’s a quick, practical guide to get you set up:

1. Make sure you have Node.js and npm installed

Check by running:
node -vnpm -v

2. Go to your Laravel project folder

cd your-laravel-project

3. Initialize npm (if you don’t have package.json yet)

npm init -y

4. Install the package you need

For example, to add Axios:
npm install axios

5. Compile your assets

Use Vite’s default npm scripts:
npm run dev    # compile once for developmentnpm run build  # compile for production
These steps set up everything your Laravel app needs to handle modern JavaScript and CSS assets.

Laravel Mix vs Vite: What’s Relevant in 2025?

If you’ve worked with older Laravel projects, you’ve probably come across Laravel Mix. Starting from Laravel 9, though, Vite became the default, and for good reason.
  • Faster hot reloads: Changes show up almost instantly while you code.
  • Smoother setup for Vue & React: Less config, more coding.
  • Lean production builds: Keeps your final assets small and quick to load.

Using Compiled Assets in Blade Views

Once your assets are compiled using Vite, you’ll need to include them in your Blade templates so the browser can load your CSS and JavaScript. Here’s how to do it properly: Include CSS and JS with @vite directive Instead of the old {{ asset() }} method, Laravel uses @vite:
@vite(['resources/css/app.css', 'resources/js/app.js'])
Place this in your Blade layout file, usually inside the <head> and before closing </body> tag.

Where do these files come from?

When you run your build, Vite compiles everything from the resources/ folder into public/build/. No need to copy files manually — npm run dev or npm run build takes care of it behind the scenes.

Best Practices & Tips

A few habits can save you time and trouble when working with npm in Laravel:

Dev vs Production Dependencies

  • During development, just use npm install to grab everything.On production, run:
On production servers, use:
npm install --omit=dev

Don’t push node_modules to Git

  • Always include node_modules/ in your .gitignore.
  • It’s huge, and you can recreate it anytime with npm install.

When Should You Run npm on a Server?

  • Most teams build assets before deployment.
  • But in some CI/CD workflows, you might still run npm install and npm run build on the server itself.
Also Read: The Popular Sites Built With Laravel

Keep Dependencies Updated

  • Run npm outdated to check for package updates regularly.
  • Use npm update to keep things fresh and secure.

Troubleshooting Common npm Issues

Even with a clean setup, npm can sometimes throw curveballs. Here’s how to handle the most common ones:

Version conflicts

Run npm ls to see what’s clashing. Updating or aligning versions in package.json usually fixes it.

Permission or access errors

Try sudo npm install (Linux/Mac) or run your terminal as an administrator (Windows). Avoid using sudo all the time fix file ownership if it keeps happening.

Build errors with Vite

Check your vite.config.js or missing plugins. Often, reinstalling dependencies helps:
rm -rf node_modulesnpm install

Check official docs

Laravel and Vite have solid troubleshooting guides: Most npm issues boil down to outdated packages, typos, or missing configs so a careful re-check usually saves the day.

Want to Accelerate your Laravel Solution?

Partner with our Skilled Laravel Developers to build, scale, and achieve Robust Laravel Solutions.