When I tried to put Storybook for Vue into a project using Vue.js, I could see it in my browser, but the components got the following error:
Failed to mount component:template or render function not defined.
I installed it myself at first, but I couldn't solve it, so I had a similar problem using @storybook/cli
.
If anyone knows how to solve this problem, I would appreciate it if you could let me know.
By the way, the environment is as follows.
"dependencies": {
"axios": "^0.18.0",
"element-ui": "^2.4.6",
"reset-css": "^4.0.1",
"vue": "^2.5.17",
"vue-router": "^3.0.1",
"vuex": "^3.0.1",
"vuex-router-sync": "^5.0.0"
},
"devDependencies": {
"@storybook/addon-actions": "^3.4.10",
"@storybook/addon-knobs": "^3.4.10",
"@storybook/vue": "^3.4.10",
"babel": "^6.23.0",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.6",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.26.0",
"browser-sync": "^2.24.6",
"cross-env": "^5.2.0",
"css-loader": "^1.0.0",
"eslint": "^5.4.0",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^2.1.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-vue": "^4.7.1",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"node-ass": "^4.9.3",
"sass-loader": "^7.1.0",
"storybook-vue-router": "^1.0.1",
"style-loader": "^0.22.1",
"ts-loader": "^4.5.0",
"typescript": "^3.0.1",
"vue-loader": "^15.4.0",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.5.17",
"vue-test-utils": "^1.0.0-beta.11",
"webpack": "^4.17.1",
"webpack-cli": "^3.1.0",
"@storybook/addon-links": "^3.4.10",
"@storybook/addons": "^3.4.10",
"babel-preset-vue": "^2.0.2"
}
Below .storybook/
are:
import'@storybook/addon-actions/register';
import '@storybook/addon-knobs/register';
import {configure } from '@storybook/vue';
const context=require.context('../src/js/app/stories/', true, /^.*?\.js$/);
function loadStories() {
context.keys().forEach(filename)=>{
context(filename);
});
};
configure(loadStories, module);
const path=require('path');
const {VueLoaderPlugin} = require('vue-loader');
module.exports=(storybookBaseConfig)=>{
const config = storybookBaseConfig;
config.module.rules.push({
test://\.scss$/,
use:
'vue-style-loader',
'css-loader',
'sass-loader',
],
});
config.module.rules.push({
test://\.vue$/,
loader: 'vue-loader',
});
config.plugins.push (new VueLoaderPlugin());
return config;
};
I solved myself.
The reason is vue-loader
, and @storybook/vue
didn't seem to work because the way you specified it changed from version 15.
https://github.com/storybooks/storybook/issues/3492
I discovered the above issue and installed @storybook/[email protected]
, and it worked fine.
© 2024 OneMinuteCode. All rights reserved.