Javascript Vue的故事书:[Vue warn]:未能装载组件:未定义模板或渲染函数
我想使用并为我们的开发人员和产品经理提供一个基于web的组件库来构建我的前端 Gridsome正在正常工作。通过Javascript Vue的故事书:[Vue warn]:未能装载组件:未定义模板或渲染函数,javascript,vue.js,storybook,Javascript,Vue.js,Storybook,我想使用并为我们的开发人员和产品经理提供一个基于web的组件库来构建我的前端 Gridsome正在正常工作。通过npm运行故事书运行故事书。但当我在Chrome中访问该页面时,控制台出现错误,提示:[Vue warn]:未能装载组件:未定义模板或呈现函数 我已经按照故事书文档设置了我的设置。但是我创建了一个定制的webpack.config.js,因为我有全局(scss)资源,应该在我的所有组件(比如全局变量)中加载和注入这些资源 我想问题出在我的网页文件里。但改变事物会导致更多的错误^^ 我的
npm运行故事书运行故事书
。但当我在Chrome中访问该页面时,控制台出现错误,提示:[Vue warn]:未能装载组件:未定义模板或呈现函数
我已经按照故事书文档设置了我的设置。但是我创建了一个定制的webpack.config.js,因为我有全局(scss)资源,应该在我的所有组件(比如全局变量)中加载和注入这些资源
我想问题出在我的网页文件里。但改变事物会导致更多的错误^^
我的组成部分:
<template>
<h1 :style="styles">
<slot></slot>
</h1>
</template>
<script>
export default {
name: "FaaH1",
props: {
color: {
type: String,
required: false
}
},
computed: {
styles(){
return {
color: this.color
}
}
}
}
</script>
<style scoped lang="scss">
h1 {
font-size: $font-size-base * 2.5;
color: $secondary;
text-transform: uppercase;
font-weight: $font-weight-extrabold;
}
</style>
最后是我的webpack.config.js
const path = require('path');
module.exports = async ({config, mode}) => {
config.module.rules.push({
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader'],
include: path.resolve(__dirname, '../src/assets/styles/'),
});
config.module.rules.push({
test: /\.vue$/,
use: 'vue-loader'
});
config.module.rules.push({
test: /\.css$/,
use: [
{ loader: 'vue-style-loader' },
{ loader: 'css-loader', options: { sourceMap: true } },
]
});
config.module.rules.push({
test: /\.scss$/,
use: [
{ loader: 'vue-style-loader' },
{ loader: 'css-loader', options: { sourceMap: true } },
{ loader: 'sass-loader', options: { sourceMap: true } },
{ loader: 'sass-resources-loader',
options: {
sourceMap: true,
resources: [
path.resolve('../src/assets/styles/_globals.scss')
]
}
}
]
});
return config;
};
猜测一下,Webpack不知道如何尝试将
FaaH1
的请求视为FaaH1.vue
。尝试在导入路径中指定,即
从“./src/components/text/headers/FaaH1.vue”导入FaaH1
或者,将.vue
添加到网页包列表中
config.resolve.extensions.push(“.vue”)
猜测一下,Webpack不知道如何尝试将FaaH1
的请求视为FaaH1.vue
。尝试在导入路径中指定,即
从“./src/components/text/headers/FaaH1.vue”导入FaaH1
或者,将.vue
添加到网页包列表中
config.resolve.extensions.push(“.vue”)
不确定是否可以按以下方式注册Vue全局组件。
Vue.component()
确实将函数类型作为其第二个参数。但是我认为定制函数的原型中可能没有足够的属性。因此,这里最好使用Vue.extend()
而不是箭头函数
// Perhaps NG
export const faaH1 = () => ({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
});
// This should work
export const faaH1 = Vue.extend({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
})
Vue.component('faa-h1', FaaH1);
//NG
导出常量faaH1=()=>({
组件:{FaaH1},
模板:“标题H1”
});
//这应该行得通
导出常量faaH1=Vue.extend({
组件:{FaaH1},
模板:“标题H1”
})
Vue.组件('faa-h1',FaaH1);
不确定是否可以按以下方式注册Vue全局组件。
Vue.component()
确实将函数类型作为其第二个参数。但是我认为定制函数的原型中可能没有足够的属性。因此,这里最好使用Vue.extend()
而不是箭头函数
// Perhaps NG
export const faaH1 = () => ({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
});
// This should work
export const faaH1 = Vue.extend({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
})
Vue.component('faa-h1', FaaH1);
//NG
导出常量faaH1=()=>({
组件:{FaaH1},
模板:“标题H1”
});
//这应该行得通
导出常量faaH1=Vue.extend({
组件:{FaaH1},
模板:“标题H1”
})
Vue.组件('faa-h1',FaaH1);
猜测一下,Webpack不知道如何尝试将FaaH1
的请求视为FaaH1.vue
。尝试在import
路径中指定,即import FaaH1 from./src/components/text/headings/FaaH1.vue“
猜测一下,Webpack不知道如何尝试将FaaH1
的请求视为FaaH1.vue
。尝试在导入路径中指定,即从“./src/components/text/headings/FaaH1.vue”导入FaaH1
// Perhaps NG
export const faaH1 = () => ({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
});
// This should work
export const faaH1 = Vue.extend({
components: {FaaH1},
template: '<faa-h1>Heading H1</faa-h1>'
})
Vue.component('faa-h1', FaaH1);