laravel - Laravel VuetifySetup
问题描述
我按照youtube上的教程使用 laravel 进行 Vuetify 设置。我成功地设置了项目,即安装教程中指定的所有依赖项。尽管在最后一步 NPM watch 中,我在控制台中收到以下错误;
未捕获的类型错误:_plugins_vuetify__WEBPACK_IMPORTED_MODULE_1__.default 不是构造函数
vuetify.js 代码:
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
Vue.use(Vuetify)
const opts = {}
export default new Vuetify(opts)
解决方案
问题恰恰在于您导出默认 Vuetify 的位置。
最好的做法是在插件的单独文件中导入 Vuetify,例如,我将保持这种做法。
所以运行后:
$ npm install vuetify --save
// OR
$ yarn add vuetify
通过 Webpack 在现有应用程序上安装 Vuetify 或创建一个新的 Vue.js 项目,如下所示:
$ vue add vuetify
您应该按照以下说明进行操作。
验证v1.5.*
如果您使用的是 Vuetify ,请v1.5.*
按照以下说明进行操作(否则,请跳到下一个)
首先,您不必在此版本中导出 Vuetify,您只需导入 Vuetify 并告诉 Vue 使用它。所以plugins/vuetify.js
应该是这样的(您也可以直接在您的main.js
or中执行以下操作app.js
):
// /plugins/vuetify.js
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
Vue.use(Vuetify)
注意:您还可以在 Vue.use 中的上述文件中定义一些设置,并将其作为对象传递,如下所示:
Vue.use(Vuetify, {/*Your setting goes here*/})
main.js
然后像下面这样在你的or中导入它app.js
:
// main.js or app.js
import Vue from 'vue'
import 'vuetify/dist/vuetify.min.css' // You also need to import Vuetify CSS file and also ensure you are using css-loader
import './plugins/vuetify' // We have assuemed the above snippet is in the plugins directory and it lies next to main.js or app.js
...
new Vue({
el: "#app",
router,
store,
render: h => h(App),
})
验证v2.*.*
通过您的 Webpack 添加它后,您需要找到webpack.config.js
以下设置并将其添加到您的 Webpack 中以配置加载程序:
// webpack.config.js
module.exports = {
rules: [
{
test: /\.s(c|a)ss$/,
use: [
'vue-style-loader',
'css-loader',
{
loader: 'sass-loader',
// Requires sass-loader@^7.0.0
options: {
implementation: require('sass'),
fiber: require('fibers'),
indentedSyntax: true // optional
},
// Requires sass-loader@^8.0.0
options: {
implementation: require('sass'),
sassOptions: {
fiber: require('fibers'),
indentedSyntax: true // optional
},
},
},
],
},
],
}
之后只需创建一个插件目录,然后vuetify.js
像文件一样将以下内容添加到其中:
// /plugins/vuetify.js
import Vue from 'vue'
import Vuetify from 'vuetify'
import 'vuetify/dist/vuetify.min.css'
Vue.use(Vuetify)
const opts = {}
export default new Vuetify(opts)
然后导航到您的主条目 (main.js
或app.js
) 并将其导入如下:
// main.js or app.js
import Vue from 'vue'
import vuetify from '@/plugins/vuetify' // We have assumed the above snippet is in the plugins directory and it lies next to main.js or app.js
new Vue({
vuetify,
}).$mount('#app')
注意:这听起来更像是一个说明,但有关更多信息,您可以访问此处的文档。
推荐阅读
- jquery - 尝试将键传递给自定义函数的参数以显示数据中的所有值
- ffmpeg - 我怎么知道某个文件是视频文件?
- javascript - 如何制作具有 3 种颜色和大量曲线的多渐变背景?
- apache-spark - SparkUI 在独立模式下运行时不显示选项卡(作业、阶段、存储、环境……)
- webpack - Webpack:使用 copy-webpack-plugin 将资产转译到 dist 目录
- xml - XSLT 将类型添加到特定标签
- batch-file - 如何修复此批处理文件,使其不会在 IF 语句中出错?
- algorithm - 如何有效地扩展一系列二项式的乘积?
- c# - StringLength 属性不验证为什么我的实现
- javascript - while 循环和承诺