Npm run dev stuck at APP_URL - laravel

I created a new laravel project, installed breeze auth and ran npm install and npm run dev. But it's stuck at this screen for 15 minutes now. Nothing is moving on the terminal window.
All the commands I used was
laravel new shop
composer require laravel/breeze
php artisan breeze:install
npm install
npm run dev
Everything worked fine until npm run dev, but when I enter npm run dev command, I get this output and nothing else.
PS C:\shop> npm run dev
> dev
> vite
vite v2.9.13 dev server running at:
> Local: http://localhost:3000/
> Network: use `--host` to expose
ready in 364ms.
Laravel v9.19.0
> APP_URL: http://shop.test

Laravel version 9.19.0 replaced Mixer with Vite for more information check Bundling Assets (Vite)
if you want to work mixer install Laravel version /= 9.1.0
composer create-project Laravel/Laravel app_name 9.1.0

I used npm run build instead npm run dev. And that solved it, I guess.

I faced the same problem. I tried for many hours to solve this problem. Laravel 9.19.0+ is using Vite to replace Laravel Mix for bundling assets. https://laravel.com/docs/9.x/vite#main-content
Starter kit components like Laravel Breeze and Jetstream have been using #vite
#vite(['resources/css/app.css', 'resources/js/app.js'])
When we run npm run dev vite will create own host below.
> dev
> vite
vite v2.9.13 dev server running at:
> Local: http://localhost:3000/
> Network: use `--host` to expose
ready in 364ms.
Laravel v9.19.0
> APP_URL: http://shop.test
And alway embed our style and script with this host http://127.0.0.1:3000/
<link rel="stylesheet" href="http://127.0.0.1:3000/resources/css/app.css">
<script type="module" src="http://127.0.0.1:3000/resources/js/app.js"></script>
I found a file name hot in the folder public was been created during we run command npm run dev and it is never delete.
To work around I just delete hot file by add few code into package.json
From
"scripts": {
"dev": "vite",
"build": "vite build"
},
To
"scripts": {
"delhot": "npx rimraf public/hot",
"dev": "vite",
"build": "npm run delhot vite build"
},
I hope that next release version of Laravel Vite will fix this issue.

composer create-project Laravel/Laravel app_name 9.1.0
Just use this laravel ver

Related

Vite on Laravel Forge running npm run dev

We would like to create a dev environment in laravel forge. The site is working correctly, but when we run npm run devĀ it won't load CSS and assets.
How can we configure Nginx on laravel forge and Vite to work with dev environment?
We tried using --host parameter on npm run dev, but still not working.

laravel showing error when vite not loaded (how to start larvel just with php artisan serve)

I am new to Laravel and I start my Laravel project using php artisan serve but I found that I also have to load Vite from another command prompt using npm run dev in order to make Laravel project run properly is there any method to autoload Vite when I do php artisan serve
when Vite is loaded my code works correctly
scripts in package.json
"scripts": {
"dev": "vite",
"build": "vite build"
},
Cause of Problem:
In older versions of Laravel we were using laravel-mix package but now laravel js compiling engine is shifted to vite and it is much more faster.
In the case of mix engine whenever we run npm run dev generate compiled js code in public/js directory. and due to it we need to refresh page manually everytime.
But now In vite when you run npm run dev it just starts a vite server that continuously monitor your changes and reflect those changes on screen immediately. but it's not generate compiled js files in public/js directory
So, when your vite server not running it shows above error.
Solution:
If you want to run laravel without runing vite server by npm run dev you will need to run npm run build. It will generate compiled js files in public/js directory so then you will not have need to run vite server.
Caution: if you run npm run dev after the npm run build command your compiled templates will be removed. So, you will need to run npm run build once again after stopping vite server which is running using npm run dev
npm run dev
with vite is basically what
npm run watch
used to do back with mix.
If you focus on your back-end, try to run prod instead, so that your main page works while you deal with laravel.
Once you get to front-end work and need your js running, you need to have vite up during development. At any point you can stop the process, run a quick prod build and get back to whatever you want.
npm and artisan are two different tools that have nothing to do with each other. They need to run seperately.
You can extend your package.json to automatically start both with npm run serve:
{
...
"scripts": {
...
"serve": "php artisan serve & npm run dev"
},
...
}
It's because of your Node version. Check your Node Version
node -v
if it's below 16, you should upgrade it to the latest one then run
npm install && npm run dev

Why npm run dev stuck on APP_URL?

Today when i tried to run npm run dev in Laravel 9 , it stucks at APP_URL line. Earlier there were no issues.enter image description here
Hope it's because of Vite
try with
npm run build
There is nothing wrong with your build. Laravel now uses Vite as front-end bundler. It is much more powerful than mix, so check out the documentation and get used to it. Or roll back to mix.
first solution : Laravel 9.19 replace the mixer with Vite, for Vite Configuration visit the official Doc of Laravel for Vite Bundling Assets (Vite)
second solution: install Laravel version 9.1.0 or lower
composer create-project Laravel/Laravel App_name 9.1.0
Uninstall and reinstall the npm package.
Delete the node_modules folder. and then run the following command
npm install
Later
npm install -g require

Laravel 6.0.3 Not Loading Key Resources App.js or App.css 404 Not Found

To setup my project I ran:
laravel new cms
composer require laravel/ui
php artisan ui:auth
php artisan migrate
However, when I go to http://cms.test/login I am shown the login page:
And get two 404 errors for missing resources:
http://cms.test/js/app.js net::ERR_ABORTED 404 (Not Found)
http://cms.test/css/app.css
What could be the reason for these missing files?
My public directory is empty aside from .htaccess, favicon.ico, index.php and robot.txt files, is that normal?
My setup was a little wrong, I mostly forgetting to run npm install and npm run dev command that is required to compile the app.js and app.css files.
Correct setup command sequence was:
laravel new cms
cd cms
php artisan migrate
composer require laravel/ui
npm install
php artisan ui vue --auth
npm install && npm run dev
The app.css and app.js were missing from a new app. The proper steps had been run as are noted in Jack Robson's answer above. I reran the last two steps:
php artisan ui vue --auth
npm install && npm run dev
And it generated the app.css and app.js - all good now.
No idea what had gone wrong in the initial install.
The below command did the trick for me.
npm install && npm run dev
In my case it was:
that when configuring the
Virtual Host in Apache wrote the path to the folder incorrectly:
DocumentRoot "D: \ LARAVEL \ instagrmalaravel \ public"
...
when on host it was:
127.0.0.1 instagramlaravel.local,
change: instagrmalaravel to: instagramlaravel.
And everything worked correctly.
The reason the files are missing is you forgot to run the build process that generates the files. The last command npm run dev does this. Having the 2 commands paired (npm install && npm run dev) in the docs seems to be catching a lot of people out.

Laravel project auto refresh after changes

Does anyone know if there is a way to run the code changes in a Laravel project without refreshing the page every time.
I know that to see the changes I need to
php artisan serve
but I do it every time and it is kind of frustrating.
Thank you anyways.
You can achieve this with Laravel Mix.
According to this part of the documentation, you need to edit your webpack.mix.js file, and add this to the end:
mix.browserSync('127.0.0.1:8000');
It needs to match to the output of the php artisan serve command, where you found a line something like this:
Laravel development server started: <http://127.0.0.1:8000>
After this, you have to run the php artisan serve, and the npm run watch command simultaneously. You must leave to run both commands while you edit your files.
Note: The first time you run the npm run watch, it installs additional components. But the command output is quite clear on that. If everything is in order, Laravel Mix automatically opens your browser with http://localhost:3000, or something like this.
add in webpack.mix.js file in laravel
mix.browserSync('127.0.0.1:8000');
then run this command
> npm install browser-sync browser-sync-webpack-plugin#2.0.1 --save-dev --production=false
after this run npm run watch
> Browsersync automatic run your port 3000
First make sure you install nodejs, After that install laravel-mix
npm install --save-dev laravel-mix
create webpack.mix.js file in root folder for your project and add to it
const mix =require('laravel-mix')
mix.browserSync('127.0.0.1:8000');
Open package.json file and add to script section:
"scripts": {
"watch": "mix watch"
}
Run laravel project
php artisan serve
To update laravel project auto when you make changes run in another terminal:
npm run watch
Updated from Laravel 9.x
you can use vite instead of laravel-mix, you should run this command to install vite:
npm install
Without any configuration, The next line of code will include auto in master page, If you want to include in another master page like admin, you can write it to auto refresh when make changes:
#vite(['resources/sass/app.scss', 'resources/js/app.js'])
After installing vite, run this command
npm run dev
And run
php artisan serve
For more information, view docs
To achieve this you can use Laravel Mix
Ensure that Node.js and NPM are installed:
run node -v and npm -v.
Install Laravel Mix
npm install.
Install browser-sync and browser-sync-webpack-plugin
npm install browser-sync browser-sync-webpack-plugin --save-dev --production=false
Open webpack.mix.js and add this line
mix.browserSync('127.0.0.1:8000');.
Run Project with these two commands: The npm run watch command will continue running in your terminal and watch all relevant CSS and JavaScript files for changes. Webpack will automatically recompile your assets when it detects a change
php artisan serve. and then npm run watch.

Resources