I am developing a small system with Laravel Framework 5.6.39 and everything was going well, until I installed Vue Js. When viewing in the browser, what should be displayed does not appear and the following appears in the console:
How can I solve this error?
I think you need to run:
npm run watch
After adding VueJS to your project you need to install all dependencies by executing:
npm install
Then you can either compile your assets onetime by executing:
npm run dev
Or start a watcher which compiles your assets automatically after detecting a filechange:
npm run watch
The compile process will generate the app.js file which is missing in your case. You can read more about this process or possibilities in laravel here (laravel docs about frontend).
After pulling your project you need to install all dependencies using
npm i
Then you can build it for development one-time using
npm run dev
Or for real-time updates
npm run watch
And when your project is ready for production
npm run prod
Related
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
I am a beginner in Vuejs.I want to develop an application with laravel and Vuejs.I have follow the step of installing laravel and Vuejs and execute this composer create-project --prefer-dist laravel/laravel demo "5.8.*" command.I verify to check that Vuejs is installed or not by adding the extension of Vuejs in google chrome and it showing Vuejs is installed.But when i execute the command vue --version in the putty by connecting server through SSH then it shows error that "vue command not found".Why?
May be this question is not proper to ask but i am very confusing that actually Vuejs is installed or not.And is the Vuejs files structure is same or different?
Thanks in advance.
Installing and compiling vue into a laravel project is different than using the vue cli.
In Laravel, Vue is included in the assets registry in the package.json file.
npm uses this file to pull in assets then allows you to build them. It pulls them in with npm install
Note: you need node.js installed on your system.
The build commands you can see at the top of the package.json. They usually are:
npm run dev, npm run prod, and npm run watch.
Here is the documentation on getting started with Laravel and Vue:
https://laravel.com/docs/7.x/frontend
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.
I just read the answers to this question and wasn't able to get a good response.
Laravel Example.vue not updating
I also posted this question trying to figure it out on my own but to no avail.
how do I load a Vue component in Laravel 5.4?
As another attempt, I just did a new reinstall of Laravel, and while I am able to get the default Example.vue component to load multiple times in a single view, I am still unable to change the contents of the component. Funnier thing is that when I run npm install and then npm run dev, the component ceases to even show up anymore.
This is really frustrating because Laravel ships with Vue.js yet I am unable to utilize it. Any help would be much appreciated! :)
You need to install the node dependencies and then compile them.
Install node.js
From your projects root run npm install
From your projects root run npm run dev
Your browser may also be showing the cached version. Chrome has a setting that you can have the cache disabled while the inspector is open.
You can also check it by opening your project in other browsers.
If when running npm run dev dies without any message of any kind you can delete your node_modules folder then run npm install and then compile your assets again.
You may also need to clear and rebuild a few other caches with commands:
composer dump-autoload
php artisan clear-compiled
php artisan cache:clear
https://laravel.com/docs/5.4/mix
https://laravel.com/docs/5.4/frontend
Double check and make sure you're in the resources directory and not public. If you're in the correct directory try npm install then npm run watch
If I launch the first meteor project which uses npm packages via the meteor-npm package, followed by a second meteor project using the meteor-npm package, the first meteor project will suddenly have problem finding the npm packages right after the second meteor server has finished deploying:
Error: Can't find npm module 'mysql'. Did you forget to call 'Npm.depends' in package.js within the 'npm' package?
Restarting the first meteor server, the server output will show
npm: updating npm dependencies -- mysql...
And things will start working.
This problem happens everytime I have 2 meteor 0.7 servers running at the same time on the same system. Is there some problem with the setup/permissions of the npm packages?