我已经苦苦挣扎了几个小时,试图在我的 Laravel 项目中安装 Vuetify,但无法正确运行,Vuetify 组件可以正常工作,但图标和断点不行,我尝试了一切,现在有点累了,希望有人能帮助我...
按照 Vuetify 文档,我在 app.js 中编写了以下内容。
并在我的 webpack.mix.js 中添加了 vuetify-loader
首先,使用这个配置项目甚至无法运行,我得到了这个错误:
我从Toolbar文档中复制了代码并粘贴到我的项目中,结果如下。
如果我从
。但它还不是这个样子,我甚至无法使用Vuetify的断点(如
按照 Vuetify 文档,我在 app.js 中编写了以下内容。
require('./bootstrap');
import Vue from 'vue';
import Vuex from 'vuex';
import router from './router'
import vuetify from './plugins/vuetify.js' // path to vuetify export
Vue.use(Vuex);
new Vue({
vuetify,
router,
}).$mount('#app')
另外,一个vuetify.js文件。
import '@mdi/font/css/materialdesignicons.css' // Ensure you are using css-loader
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
Vue.use(Vuetify)
export default new Vuetify({
icons: {
iconfont: 'mdi', // default - only for display purposes
},
})
并在我的 webpack.mix.js 中添加了 vuetify-loader
const mix = require('laravel-mix');
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
mix.webpackConfig({
plugins: [
new VuetifyLoaderPlugin(),
]
}).sourceMaps();
mix.disableSuccessNotifications();
首先,使用这个配置项目甚至无法运行,我得到了这个错误:
"Error: Conflict: Multiple assets emit to the same filename fonts/vendor/@mdi/materialdesignicons-webfont.eot?a32fa1f27abbfa96ff2f79e1ade723d5"
所以我从vuetify.js文件中删除了import "@mdi/font/css/materialdesignicons.css"
,没有出现错误,但是图标不可见。我从Toolbar文档中复制了代码并粘贴到我的项目中,结果如下。
这是该空工具栏的代码
<template>
<v-card
color="grey lighten-4" flat height="200px" tile>
<v-toolbar dense>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<div class="flex-grow-1"></div>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</template>
如果我从
vuetify.js
文件中将iconfont
从'mdi'更改为'mdiSvg',我确实会得到一个图标,但其他图标仍然丢失。
根据文档,这个工具栏应该看起来像这样:![在此输入图片描述](https://istack.dev59.com/C8jL4.webp)
$vuetify.breakpoint.smAndUp
),控制台显示未定义错误。