Topic: Integrating MDBvue with Laravel
<template> <card> <card-img src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20%286%29.jpg" alt="Card image cap"></card-img> <card-body> <card-title>Basic card</card-title> <card-text>Some quick example text to build on the card title and make up the bulk of the card's content.</card-text> <btn color="primary">Button</btn> </card-body> </card> </template> <script> import { Card, CardImg, CardBody, CardTitle, CardText, Btn } from 'mdbvue'; export default { name: 'test', components: { Card, CardImg, CardBody, CardTitle, CardText, Btn } }; </script>then I add the component to my
app.js
file using
Vue.component('test', require('./components/test.vue'));Next I do
npm run watch
script and I get numerous errors (exceeding the scroll capacity of my console) saying...
ERROR in ./node_modules/babel-loader/lib?{"cacheDirectory":true,"presets":[["env",{"modules":false,"targets":{"browsers":["> 2%"],"uglify":true}}]],"plugins":["transform-object-rest-spread",["transform-runtime",{"polyfill":false,"helpers":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./node_modules/mdbvue/src/components/CardUp.vue Module build failed: Error: Couldn't find preset "stage-2" relative to directory "/var/www/my-site/node_modules/mdbvue" at /var/www/my-site/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19 at Array.map (<anonymous>) at OptionManager.resolvePresets (/var/www/my-site/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20) at OptionManager.mergePresets (/var/www/my-site/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10) at OptionManager.mergeOptions (/var/www/my-site/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14) at OptionManager.init (/var/www/my-site/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12) at File.initOptions (/var/www/my-site/node_modules/babel-core/lib/transformation/file/index.js:212:65) at new File (/var/www/my-site/node_modules/babel-core/lib/transformation/file/index.js:135:24) at Pipeline.transform (/var/www/my-site/node_modules/babel-core/lib/transformation/pipeline.js:46:16) at transpile (/var/www/my-site/node_modules/babel-loader/lib/index.js:50:20) at /var/www/my-site/node_modules/babel-loader/lib/fs-cache.js:118:18 at ReadFileContext.callback (/var/www/my-site/node_modules/babel-loader/lib/fs-cache.js:31:21) at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:420:13) @ ./node_modules/mdbvue/src/components/CardUp.vue 8:21-346 @ ./node_modules/mdbvue/src/index.js @ ./node_modules/babel-loader/lib?{"cacheDirectory":true,"presets":[["env",{"modules":false,"targets":{"browsers":["> 2%"],"uglify":true}}]],"plugins":["transform-object-rest-spread",["transform-runtime",{"polyfill":false,"helpers":false}]]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./resources/js/components/test.vue @ ./resources/js/components/test.vue @ ./resources/js/app.js @ multi ./resources/js/app.js ./resources/sass/app.scssIs there a step that I'm skipping or something here? Would greatly appreciate any assistance.
Jakub Strebeyko staff answered 6 years ago
npm install --save-dev babel-preset-stage-2Note, that it is strange - following the guide should leave you off with a properly installed module (with all the sub-dependencies installed, too). We weren't able to get the same error message just by installing it the package as a dependency. Please let us know either way about your setup and whether the unelegant solution worked - it might get us on the right track! Best, Kuba
Mikołaj Smoleński staff answered 6 years ago
Hi Arat,
Please follow the instructions:
MDBVUE LARAVEL HOW-TO:
- Go into your project's root directory;
- $ yarn add -D babel-preset-stage-2
- in yourappname/resources/js/app.js add import 'mdbvue/build/css/mdb.css';
- enhance a chosen blade template (default: "yourappname/resources/views/welcome.blade.php") with a) id="app" this is where our Vue instance will be mounted b) in the head so that the default BS styles can get attached c) in, say, lower part of the body so that our js goodies actually get there
- $ yarn dev it will compile both css and vue code into the output files we attached above
- $ php artisan serve now we should have a php server running (by default at localhost: 8000)
Best regards
Jack Lyons commented 6 years ago
Does it have to be id="app" or can we choose the ID name? If so, are there any extra steps to take to make this change? I don't want to physically change the 'el' to 'app' because that would break any future upgrades wouldn't it?
Arat pro premium priority answered 6 years ago
Hi! I have Laravel 5.7 too and Vue with TypeScript syntax. How I can integrate MDB Vue? I tried same for Navbar, imported all components, but it works not fine ( Thanks!!!
Mikołaj Smoleński staff commented 6 years ago
Did You try to import our components without 'mdb' prefix?
Best regards
FREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Answered
- User: Free
- Premium support: No
- Technology: MDB Vue
- MDB Version: 4.6.0
- Device: any
- Browser: any
- OS: Ubuntu 16.04
- Provided sample code: Yes
- Provided link: Yes