Vue3ïŒããŒã¿ïŒã¢ããªã§ã¹ããŒãªãŒããã¯ãå®è¡ããããšãããšãããããã€ãã®ãšã©ãŒãçºçããŸããâŠWebpackæ§æãããŒãžããVue3ããŒããŒãã©ã°ã€ã³ãããã·ã¥ããããšãåé¿ã§ããŸããã
const wltConfig = require('../apps/webpack-dev');
const { VueLoaderPlugin } = require('vue-loader');
module.exports = {
stories: ['../**/*.stories.[tj]s'],
webpackFinal: (config, ...args) => {
config.plugins.push(new VueLoaderPlugin());
return { ...config, module: { ...config.module, rules: wltConfig().module.rules } };
}
};
ã·ã§ã«ã§ãŸã èŠåãšãšã©ãŒãçºçããŸãïŒ
WARN Failed to load preset: "/home/tobi/Projects/modul/portal/client/node_modules/@storybook/vue/dist/server/framework-preset-vue.js"
ERR! Error: Cannot find module 'vue-loader/lib/plugin'
âããã«ãããããããã¹ããŒãªãŒããã¯ã¯ãã©ãŠã¶ãæ§ç¯ããŠéããŸãã ããã§ç§ã¯ãã®ãšã©ãŒã¡ãã»ãŒãžã§ç«ã¡åŸçããŠããŸãïŒ
Uncaught TypeError: _vue.default is not a constructor
at Object../node_modules/@storybook/vue/dist/client/preview/render.js (render.js:43)
at __webpack_require__ (bootstrap:848)
at fn (bootstrap:150)
at Object../node_modules/@storybook/vue/dist/client/preview/index.js (index.js:24)
at __webpack_require__ (bootstrap:848)
at fn (bootstrap:150)
at Object.<anonymous> (index.js:55)
at Object../node_modules/@storybook/vue/dist/client/index.js (index.js:59)
at __webpack_require__ (bootstrap:848)
at fn (bootstrap:150)
ãããããè¯ãã¢ãããŒãã¯ãããŸããïŒ ç§ã¯ã¹ããŒãªãŒããã¯ã®åèšn00bãªã®ã§ããã€ã³ã¿ãæ¯æŽãããã°åãã§ããŸãã ïŒå°ãªããšãç§ãç¥ãéããæå³ã®ããçµæãªãã«vue3ã®åé¡ãæ€çŽ¢ããŸãããïŒ
èªåã¡ã³ã·ã§ã³ïŒãã@ backbone87 @pocka ãããªãã¯ã¿ã°ä»ããããŸããïŒ ããã§æãå·®ã䌞ã¹ãŠããããŸããïŒ
ããŒã..vue3ããªã»ãããå®è¡ããå¿ èŠããããããããŸãã
ããŒã..vue3ããªã»ãããå®è¡ããå¿ èŠããããããããŸãã
æäŒã£ãŠãããïŒ
ç§ããããŸã§ã«è©ŠããããšïŒãã ããããŒãã¢ãžã¥ãŒã«ãã£ã¬ã¯ããªã«ããdistãã¡ã€ã«ã®ã¿ïŒïŒ
VueLoaderPlugin
ã¯vue-loader
ãšã¯ã¹ããŒãã«ãªããŸããvue-esm.js
ãvue.esm-browser.js
眮ãæããŸã11c11
< var _plugin = _interopRequireDefault(require("vue-loader/lib/plugin"));
---
> var _plugin = _interopRequireDefault(require("vue-loader").VueLoaderPlugin);
34c34
< vue$: require.resolve('vue/dist/vue.esm.js')
---
> vue$: require.resolve('vue/dist/vue.esm-browser.js')
ã¢ããªã³ã³ããŒãã³ãã¯createApp()
ã§ã€ã³ã¹ã¿ã³ã¹åããããã¹ãŠã®æ§æãªã©ãã€ã³ã¹ã¿ã³ã¹ã«é©çšããå¿
èŠããããŸã
`` `diff
21c21
var _vue = _interopRequireDefaultïŒrequireïŒ "vue"ïŒãcreateAppïŒ;
43c43<var root = new _vue ["default"]ïŒ{
var root = _vue ["default"]ïŒ{
67c67<_vue ["default"]ãconfig.errorHandler = showException;
root.config.errorHandler = showException;
88c88<rootã$ mountïŒ 'ïŒroot'ïŒ;
root.mount('#root');
`` `
extends
ããããã£ãå®çŸ©ãããªã©ãã¢ããªã€ã³ã¹ã¿ã³ã¹ãå¿
èŠãªããã vue/dist/client/preview/index.js
ç«ã¡åŸçããŠããŸããããã¯ãé©åãªã¹ããŒãªãŒããã¯ãã«ãã§ã®ã¿å®è£
ã§ããããã§ãâŠ
ããŸãããã°ããããã®èµ€ã¡ããã®ã¹ãããã¯ããã€ãã®æçšã§ãã
çããããã«ã¡ã¯ïŒ æè¿ããã®åé¡ã¯ããŸãé²ãã§ããªãããã§ãã ããã§ã質åãã³ã¡ã³ãããã°ãããå Žåã¯ãé æ ®ãªãè°è«ãç¶ããŠãã ããã æ®å¿µãªããããã¹ãŠã®åé¡ã«åãçµãæéããããŸããã ç§ãã¡ã¯ãã€ã§ãå¯ä»ãåãä»ããŠããŸãã®ã§ãå©ããå¿ èŠãªå Žåã¯ãã«ãªã¯ãšã¹ããéã£ãŠãã ããã éã¢ã¯ãã£ããªåé¡ã¯30æ¥åŸã«ã¯ããŒãºãããŸãã ããããšãïŒ
ãã³ã
@pksunkara @graup @ Aaron-ããŒã«èª°ãããããæãäžããæéããããŸããïŒ å¿ èŠãªé倧ãªå€æŽãããããããã6.0ã«ç§»è¡ã§ããå Žåã¯ãä»ããããè¡ãã®ã«æé©ãªææã§ãã
Vue3ããªãªãŒã¹ãããåŸãããã°ããã®éVue2ããµããŒãããå¿ èŠããããŸãã 確èªããå¿ èŠãããã®ã¯ãã©ããããããäž¡æ¹ãåæã«ãµããŒãã§ãããã©ããã§ãã
ãŸããVue3ã¯ãŸã ããŒã¿çã§ã¯ãªãããšãèæ ®ããã¹ããŒãªãŒããã¯v6ããªãªãŒã¹ããããšèããŠãvue3ã®ãµããŒããv6ãªãªãŒã¹åŸã«å»¶æããŸãã
ç§ã¯ãããããã«èª¿æ»ããããšãèšç»ããŠããŸãããETAãäžããããšãã§ããŸããã Vue3ãè©Šãæ©äŒã¯ãŸã ãããŸããã
ãšã«ãããŸã ããŒã¿çã§ãããããããã¯6.0ã§ã¯ç·æ¥ã§ã¯ãªããšãã@pksunkaraã«åæããŸãã
@graupã«æè¬ããŸãã ãŸããç·æ¥ã§ã¯ãªãããšã«ãåæããŸããStorybookã§ãªãªãŒã¹ãããŠããªããœãããŠã§ã¢ããµããŒãããããšãæåŸ ãã¹ãã§ã¯ãããŸããã ç§ã®å¯äžã®æžå¿µã¯ãããšãã°ã7æã«6.0ããªãªãŒã¹ãã8æã«Vue3ããªãªãŒã¹ãã9æã«ãµããŒãããäºå®ã§ãããé倧ãªå€æŽãå¿ èŠã§ããããšãããã£ãããšã§ãã ãããŠã2021幎6æã«è¡ãããã¯ãã®10æã®ã¡ãžã£ãŒããŒãžã§ã³ã®ãã³ãããªããã°ããã®ãããªé倧ãªå€æŽãè¡ãããšã¯ã§ããŸããã
ãã¬ãŒã ã¯ãŒã¯ãããŒãã¹ãã©ããããããžãã¯ãå°ãç°ãªããããVue 3ã§åäœãããã«ã¯ã©ãããã°ãããã«ã€ããŠãäžåãã£ã³ãã«ã«ããã€ãã®ã©ã€ãã衚瀺ããããšããŠããŸããã vueãã©ã«ããŒå ã®çŸåšã®ã³ãŒãã¯vue3ã§æ©èœãããšæããŸãã
@shilmanãç解ããŠããŸãã ç§ã¯èªåã®äž»åŒµãæ£ããç解ããŠããªãã£ãããã«èŠããã®ã§ãããå°ãæ確ã«ããŸãããã
@ p3kã®è©Šã¿ãš@milewskiã®ã³ã¡ã³ãã§ç§ãç解ããŠããããšãããæ°ããããªã»ãããå¿
èŠãªã ãã§ãªãã @storybook/vue
ããã±ãŒãžã«é倧ãªå€æŽãå ããå¿
èŠããããŸãã
ãã ããVue v2ãããªãã®æéãµããŒãããå¿
èŠãããããã¹ãŠã®äººãVuev3ã«ç§»è¡ããããã§ã¯ãããŸããã ãããã£ãŠãVue v2ããµããŒããããªããªã£ããšèšããããªãéããæ°ãã@storybook/vue3
ããã±ãŒãžãäœæããã»ããããã§ãããã
ããããVue v2ã®ãµããŒããçµäºããããšã«ããå Žåã¯ãããã§ããStorybookv6ããåã«é倧ãªå€æŽãè¡ãå¿ èŠãããããšã«åæããŸãã
@pksunkaraææ¡ããããœãªã¥ãŒã·ã§ã³ã¯çŽ æŽãããã§ããã ð¯
ããã«vue2ã®ãµããŒããçµäºã§ãããšã¯æããªãã®ã§ãããã2ã€ã®ããã±ãŒãžã䞊è¡ããŠå®è¡ããå°æ¥ã®ã¡ãžã£ãŒãªãªãŒã¹ïŒ7.0ïŒ8.0ïŒæ±ºããŠïŒïŒã§å®å šã«ã«ãããªãŒããŒããããšæããŸãã 2ã€ã®ããã±ãŒãžããªãªãŒã¹ãããããnpm download statsã䜿çšããŠãVue2ãµããŒããåé€ããé©åãªã¿ã€ãã³ã°ãå€æã§ããŸãã WDYTïŒ
cc @ndelangen
ç§ã¯ããã«æ®åœ±ãããŸããïŒ https ïŒ
ãã ãã httpsïŒ//github.com/milewski/storybook/blob/vue3/app/vue/src/client/preview/index.ts#L41ã§äœãããã®ãããããªãã³ãŒããããã¯ããããŸãã
ãã®ã¬ã€ãã®æ瀺ã«åŸã£ãŠhttps://storybook.js.org/docs/guides/guide-vue/ã«äŒããããšãã§ããéããvue3ã䜿çšããŠã³ã³ããŒãã³ããæ£åžžã«ã¬ã³ããªã³ã°ããŸãã...ãã®ã³ãŒããæ®ããã«ãªã...ãããããç¹å®ã®ãã©ã°ã€ã³ã䜿çšããå¿ èŠããããŸããïŒ èª°ãããã®ã³ãŒããã©ã®config / addon / pluginã§åœ¹ç«ã€ãæããŠããããŸããïŒ ã ããç§ã¯ãããä¿®æ£ããæ¹æ³ãèŠã€ããããšãã§ãã誰ããç§ã®ããŒãžã§ã³ã«ã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠãã³ãŒãæé ã«åŸã£ãŠããã§æ°ããããªã»ããããªãªãŒã¹ããããšãã§ããŸããïŒ
çŽ æŽãããä»äº@ milewski-ãšãŠããšããµã€ãã£ã³ã°ã§ã!!! ð
ç§ã¯ãã®ã³ãŒããäœãããããç解ããŸãã..ããããäžãããããªãã·ã§ã³ãé©çšããå¿ èŠããããŸãã..ç§ã¯ãããä¿®æ£ããŸãã..ããªãã¯ã¹ããŒãªãŒããã¯ãããé·ã䜿çšããŠããããã«èŠããã®ã§ãããè©Šãããšãã§ããŸããïŒ @ p3k
次ã®ã³ãã³ããå®è¡ããŠã€ã³ã¹ããŒã«ã§ããŸãã
git clone --branch vue3 https://github.com/milewski/storybook.git
cd storybook
yarn bootstrap --core
yarn build (select vue)
cd app/vue
yarn link
then cd to your project and:
yarn link @storybook/vue
@milewskiã®åªåã«æè¬ããŸãâãã©ã³ããè©ŠããŠãããšããã§ããã yarn bootstrap --core
å®è¡ãããšãšã©ãŒãçºçããŸãïŒ
âŠ
$ node ../../scripts/prepare.js
TSFILE: /home/tobi/Projects/modul/storybook/app/mithril/dist/src/client/preview/globals.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/mithril/dist/src/client/preview/types.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/mithril/dist/src/client/preview/render.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/mithril/dist/src/client/preview/index.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/mithril/dist/src/client/index.d.ts
Built: @storybook/[email protected]
lerna ERR! yarn run prepare exited 1 in '@storybook/vue'
lerna ERR! yarn run prepare stdout:
$ node ../../scripts/prepare.js
src/server/framework-preset-vue.ts(5,17): error TS4058: Return type of exported function has or is using name 'VueLoaderPlugin' from external module "/home/tobi/Projects/modul/storybook/app/vue/node_modules/vue-loader/dist/plugin" but cannot be named.
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/preview/globals.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/preview/types.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/preview/render.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/preview/util.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/preview/index.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/client/index.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/server/options.d.ts
TSFILE: /home/tobi/Projects/modul/storybook/app/vue/dist/server/build.d.ts
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
lerna ERR! yarn run prepare stderr:
ERR! FAILED (ts) :
ERR! FAILED to compile ts: @storybook/[email protected]
error Command failed with exit code 1.
lerna ERR! yarn run prepare exited 1 in '@storybook/vue'
lerna WARN complete Waiting for 3 child processes to exit. CTRL-C to exit immediately.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ããŒãã typescriptã«åé¡ããããŸããã ä»ã®ãšããtsãã§ãã¯ãç¡å¹ã«ããŸããããã©ã³ãããææ°ã®ã³ãŒãããã«ããŠåè©Šè¡ããŠãã ãã
ã¯ããã³ãã³ãã¯ãšã©ãŒãªãã§å®è¡ãããŸããã
re yarn build (select vue)
ã¡ãã»ãŒãžã衚瀺ãããŸã_storybook WARN buildäœããã«ãããŸããïŒ_âããã¯æ£ããã§ããïŒ
衚瀺ãããã€ã³ã¿ã©ã¯ãã£ãã¡ãã¥ãŒã§ã¯ãã¹ããŒã¹ããŒãæŒããŠéžæããå¿ èŠã¯ãããŸãã
ããïŒ ãã¿ãŸãããç§ã®æªãã確ãã«ã
ä»ã§ã¯åé¡ãªãæ§ç¯ãããæåã®vue3ã³ã³ããŒãã³ãã§ã¹ããŒãªãŒããã¯ãå®è¡ã§ããŸãâçŽ æŽãããã§ãïŒ ããäžåºŠããããšãã @ milewski
@milewskiãç²ãæ§ã§ããïŒ ãã¹ããããšãããåäœããŠããããã§ãã
ç§ã®ç¥ãéãã倧ããªå€æŽç¹ã¯ã€ã³ããŒããšcreateApp
ãã®ã ãã§ãããïŒ ãã¶ããã€ã³ã¹ããŒã«ãããvueããŒãžã§ã³ããã§ãã¯ããæ£ããããšãèªåçã«è¡ãäžäœäºææ§ã®ããã³ãŒããæžãããšã¯å¯èœã§ããïŒ ããããã°ã2ã€ã®ããŒãžã§ã³ã®ããªã»ããã䜿çšããããšãåé¿ã§ããŸãã
vueã®äŸãæŽæ°ããŠã¿ãŸããããããã§äœ¿çšãããŠãããã®ã®äžéšã«ã¯ãŸã vue3ããŒãžã§ã³ããªãããã§ãã äžè¬ã«ãããŒã¿çãäžäžèŽã®ããã±ãŒãžããŸã ããããããããã«æãããã®ã§ãã¢ããªã³ãªã©ãå«ãã¹ããŒãªãŒããã¯ã®ã³ãŒãããŒã¹å šäœãæŽæ°ããåã«å°ãåŸ ã€æ¹ããããããããŸãããããã¹ãããšã¯ããªããããããããŸãã
ç§ã®ç¥ãéãã倧ããªå€æŽç¹ã¯ã€ã³ããŒããšcreateAppã®ãã®ã ãã§ãããïŒ
ã¯ããç§ãããèšãã§ãããã
ç§ãæåã«è©ŠããããšããïŒç§ã®æåã®ã³ã¡ã³ããåç §ïŒãç§ãä¿æããã®ã¯æ§æã®ããŒãžã ãã§ããâ @milewskiã®è²¢ç®ã®ãããã§ãVueLoaderPluginã®ããã·ã¥ã¯ããå¿ èŠãããŸããïŒcatïŒ
ããã¥ã¡ã³ãã§èª¬æãããŠããããã«ãã¹ããŒãªãŒããã¯ã®ïŒåïŒåæåã¯ç°¡ånpm install @storybook/vue --save-dev
ïŒ
ããããã°ã2ã€ã®ããŒãžã§ã³ã®ããªã»ããã䜿çšããããšãåé¿ã§ããŸãã
ç§ã¯ãããéåžžã«æãŸãããšæããŸãããããŠå€å次ã®ç«¥è©±ã®ãªãªãŒã¹ã§å€æŽãå ããããšããå¯èœã«ããã§ãããâŠïŒ
vueã®äŸã«é¢ããŠã¯ããããïŒã®äžéšïŒã®vue3äºæããŒãžã§ã³ã®äœæãæ¯æŽã§ããã§ããããïŒ ïŒãã ããç§ã¯ãŸã vueã®å°é家ã§ã¯ãããŸãããïŒ
@graup
ç§ã®ç¥ãéãã倧ããªå€æŽç¹ã¯ã€ã³ããŒããšcreateAppã®ãã®ã ãã§ãããïŒ ãã¶ããã€ã³ã¹ããŒã«ãããvueããŒãžã§ã³ããã§ãã¯ããæ£ããããšãèªåçã«è¡ãäžäœäºææ§ã®ããã³ãŒããæžãããšã¯å¯èœã§ããïŒ ããããã°ã2ã€ã®ããŒãžã§ã³ã®ããªã»ããã䜿çšããããšãåé¿ã§ããŸãã
ç§ãåå¿æ§ã®åé¡ã«çŽé¢ããŸãããçŸåšã®ããŒãžã§ã³ããªããžã§ã¯ããèšå®/æ¡åŒµããæ¹æ³ã«åŸãããšããŸããããvue3ã¯ãã®ã¿ã€ãã®ãªããžã§ã¯ããç¹ã«ã¬ã³ããªã³ã°é¢æ°å ã§äœæããããªããžã§ã¯ãã®å€æŽã远跡ããªããªããŸãããrefã䜿çšããŠåç §ãäœæããå¿ èŠããããŸããã ïŒïŒãŸãã¯reactiveïŒïŒã䜿çšããŠãæŽæ°ãããªã¬ãŒããŸãã
vueã®äŸãæŽæ°ããŠã¿ãŸããããããã§äœ¿çšãããŠãããã®ã®äžéšã«ã¯ãŸã vue3ããŒãžã§ã³ããªãããã§ãã äžè¬ã«ãããŒã¿çãäžäžèŽã®ããã±ãŒãžããŸã ããããããããã«æãããã®ã§ãã¢ããªã³ãªã©ãå«ãã¹ããŒãªãŒããã¯ã®ã³ãŒãããŒã¹å šäœãæŽæ°ããåã«å°ãåŸ ã€æ¹ããããããããŸãããããã¹ãããšã¯ããªããããããããŸãã
ç§ã¯ãããåºçºç¹ãšããŠäœ¿çšããããšããŸããããpackagejsonã«ããŒãžã§ã³ãæ瀺çã«èšå®ããã«ãããããããvue2ã®ãã®ãã€ã³ã¹ããŒã«ããããšããŸãã... vue-template-compilerãŸãã¯å€ãvueããŒããŒãã€ã³ã¹ããŒã«ãããŠããå Žåãvue3ã¯ãŸã£ããæ©èœããŸãã..ããããã€ã³ããŒãããŠããããã«ããã€ãã®äŸåé¢ä¿ããããããããŸãã
@ p3k
ããã¥ã¡ã³ãã§èª¬æãããŠããããã«ãã¹ããŒãªãŒããã¯ã®ïŒåïŒåæåã¯ç°¡åã§ãããnpminstall@ storybook / vue --save-dev; ä»ã®ãã¢äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããå¿ èŠãããããŸããã§ããïŒãšã«ããããããžã§ã¯ãçšã«ãã§ã«ã€ã³ã¹ããŒã«ããŠãããããããããŸããïŒã
ããã¯ãpackages.jsonãžã®äŸåé¢ä¿ãšããŠvue3ãšvue-loader ^ 16ãå«ããããã«çºçãããšæããŸãã
æ¬åœã«å¿
èŠãªå Žåã¯ã @storybook/vue3
ããã±ãŒãžã§åé¡ãããŸããã
åèãŸã§ã«ãStorybook Vue2ã³ãŒãã®ã³ã¢ã¬ã³ããªã³ã°ãã°ãä¿®æ£ããŸããïŒ https ïŒ
ããã«ããã addon-knobs
ããã³addon-controls
䜿çšãããã匷å¶æŽæ°åäœããå®éã«æŽæ°ã匷å¶ããŸãã Vue3ã³ãŒãã«é¢ä¿ããããã©ããã¯ããããŸãããããã¹ãããŠããå Žåã¯åèãŸã§ã«ããã®æŽæ°ã«ããŒãžããŠãã ããã
ãã©ãŒã¯ããŒãžã§ã³ã«ãé©çšãããŸããïŒ
ç§ã®2ã»ã³ããå ¥ãããšãvue-cliãvue 2ã«äœ¿çšãããã®ãšåãããã«ã viteãvue3ã«äœ¿çšããã_defacto_ããŒã«ã«ãªãããã§ããã¹ããŒãªãŒããã¯ã䜿çšããvue-cliãprobalem @pksunkaraã¯ã圌ã®vue-cliã¹ããŒãªãŒããã¯ãã©ã°ã€ã³ã䜿çšããŠè§£æ±ºãããšããçŽ æŽãããä»äºãããŸããã å¯èœã§ããã°ãã»ããã¢ããããããªã»ãã/ããã±ãŒãžãviteãšéåžžã«ã·ãŒã ã¬ã¹ã«æ©èœããããšã確èªããå¿ èŠããããŸãã
ç·šéïŒViteã¯webpackã§ã¯ãªãå éšã§ããŒã«ã¢ããã䜿çšããŠãããããããã¯é£ãããããããªãããšã«æ°ã¥ããŸããð¬
StorybookããŠãŒã¶ãŒã®webpack / buildã·ã¹ãã ã䜿çšã§ããç¬èªã®æ§æããŸã£ããå¿ èŠãšããªããã©ãããå®éã«èª¿ã¹ãå¿ èŠããããšæããŸãã
èãã¯ããŠãããç§ã¯viteããã§ãã¯ã¢ãŠãããŠããªããšæããŸããããããã圌ãã¯vuecliãã©ã°ã€ã³ã·ã¹ãã ãé©å¿ãããã§ããã
ViteããtheãããŒã«ã«ãªããšã¯èããŠããŸããã å€æ°ã®ãããžã§ã¯ãã§webpackãæäŸãããã¯ãŒãšæè»æ§ãå¿ èŠã«ãªããŸãããviteã®ç®æšã¯ããããã¹ãŠã®ããŒãºã«å¿ããããšã§ã¯ãããŸããã
ã ããç§ã¯ä»ã®ãšããviteã«ã€ããŠããŸãå¿é ããªãã ããããã¹ããŒãªãŒããã¯èªäœã«å¯ŸããVue3ã®ãµããŒãã«ã€ããŠã¯ç¢ºãã«å¿é ããªãã ããã
@LinusBorgç§ãç¹ã«
ã¹ããŒãªãŒããã¯ãViteããŒã¹ã®ãããžã§ã¯ãã«çµ±åããããšãããšãViteã§åæ§ã®åé¡ãçºçããã®ãèŠãŸãããïŒ
ãããªããšã¯ãããŸããã Vue CLIã®ã»ããã¢ãããšæ¯èŒãããšãViteèªäœã¯ããªãå¿ èŠæäœéââã®ãã®ã§ãã
ViteãæäŸãããã®ã¯ã .vue
ã ts(x)
ãããã³.css
ãã¡ã€ã«ãåŠçããããã®ã«ãŒã«ãæã€åçŽãªWebpackæ§æã§ã«ããŒãããŠããŸãã ããã¯æ¡åŒµå¯èœã§ãããªãããç§ãã¡ã¯ãã«ã¹ã¿ã ãã©ã³ã¹ãã©ãŒã ãè¿œå ãã人ã
ãæåŸ
ããŠããªããšã¹ã¿ããã¯ãå·Šãšå³ã®ããã«ããã®APIã¯ããªãè¿ãéå±ã«ãããŸãã
èšèšäžãåºç¯ãªãã©ã°ã€ã³APIã¯ãããŸããã ãããžã§ã¯ãã«æŽŸæãªã«ã¹ã¿ã ããžãã¯ãå¿ èŠãªå Žåã¯ããšã«ããæ©ãWebpackãå¿ èŠã«ãªãå¯èœæ§ããããããVueCLIã䜿çšããŠãã ããã
Viteã¯ãããããããŠãŒã¹ã±ãŒã¹ã®æ¡åŒµæ§ããç®æšã®1ã€ãšã¯èããŠããŸããã
ãããã£ãŠãViteãããžã§ã¯ãã¯ãwebpackæ§æãç§ãã¬ã€ã¢ãŠãããåºæ¬çãªã«ãŒã«ãã«ããŒããŠããéããéåžžãstorybook / vueã§æ©èœããã¯ãã§ãã
@LinusBorgããããŸãããããã¯çã«ããªã£ãŠããŸãã å ¥åã«æè¬ããŸãðCoreVueããŒã ããã®ã¬ã€ãã³ã¹ã¯åžžã«éåžžã«é«ãè©äŸ¡ãããŠããŸãïŒ
ã¿ããªãã¹ããŒãªãŒããã¯ã«å ¥ããŠããä»äºã«æè¬ããŸããç§ã®Vue3ãããžã§ã¯ãã«ããã䜿ãã®ãåŸ ã¡ãããŸãã:)
Vue3ã¯çŸåšRCã«ãªã£ãŠããã®ã§ãv6ã«Vue3ãµããŒããè¿œå ããããšãæ€èšããå¿ èŠããããã©ãããåè©äŸ¡ãã䟡å€ããããããããŸããã
@hollandThomasã¯ãã§ã«RCã®éäžãªã®ã§ãvue3ã¯6.1ã§æäŸãããå¿ èŠããããŸãã ãšã¯èšããã®ã®ãæ°é±é以å ã«æåã®6.1ã¢ã«ãã¡çããªãªãŒã¹ããäºå®ãªã®ã§ã誰ããããããŸãšãå§ããããšæã£ãããããã«é£¢ããŠãã倧å¢ã®èŽè¡ããããšç¢ºä¿¡ããŠããŸãïŒ
Vue 3ãµããŒãã®æºåãæ¯æŽããããã«äœ¿çšãŸãã¯è²¢ç®ã§ããã¢ã¯ãã£ããªãã©ã³ãã¯ãããŸããïŒ
ç§ãã¡ã®çµç¹ã§ã¯ãVue ui-componentã©ã€ãã©ãªããã¹ãŠã®Vueãããžã§ã¯ãã«ã¢ã¯ã»ã¹ããŠãããããVue 3ã®è©Šçšãæåã«åŠšããŠãããã®ã®ã²ãšã€ã§ãããå¿ èŠã«å¿ããŠãã¹ãã移è¡ãæ¯æŽããããšèããŠããŸãã ä»ã®äººãåãè¹ã«ä¹ã£ãŠãããšæããŸãã
ããã¥ã¡ã³ãhttps://v3.vuejs.org/guide/migration/introduction.html#overviewã«v2-> v3移è¡ã¬ã€ãããã
@milewski @ graup @ Aaron-ããŒã«@elevatebartçŸåš6.1ã¢ã«ãã¡ã«ãªã£ãŠããŸãã 誰ããããã®ããã«PRã§ã·ã§ãããæ®ãããã§ããïŒ
@ p3kããããšãã ããªãã®èª¬æã§äœæãããã°ããã§ãç§ã«ãšã£ãŠã¯ä»äºã®ããã«èŠããŸãããããã»ã©å€ãã®æ©èœããã¹ãããŠããŸããã§ãã
webpackã®èšå®ã¯main.jsã§ç°¡åã«ä¿®æ£ã§ããŸãã
webpackFinal: async (config, {configType}) => {
config.resolve.alias['vue$'] = 'vue/dist/vue.esm-browser.js'
return config
}
ãšããŒããŒã¯ããããšãã§ããŸã
render.jsã§.storybookã§èšå®ããæ¹æ³ãå°ãè©°ãŸã£ãŠããŸã
@shilmanã¯ãã®ããŒãžã§ã³ã6.1.0-alpha.1ãã¯vue3ãšäºææ§ããããŸããïŒ
ããããŸãããããããã®ããã«èŠããŸãã ãŸã 2çªç®ã®ããŒãžã§ã³ããµããŒããããŠããŸãã
@shilmanãŸã Vue3ã䜿çšããæ©äŒããããŸããðç§ã®ä»äºã«ã¯ä»æã®Vue2ããŒã¹ã®è£œåãªãªãŒã¹ã®ç· ãåããããã®ã§ãæãåºãæéããããŸããã§ããã
ã€ãŸããã¿ã¹ã¯ã¯åºæ¬çã«
ïŒ
@chartingerã¯ç§ã«ãšã£ãŠæãçŽæ¥çãªéã®ããã«èãããŸãã 䜿çšããŠããvueã®ããŒãžã§ã³ã«åºã¥ããŠãããã®å€æŽãæ¡ä»¶ä»ãã§é©çšããåäžã®ããã±ãŒãžãç¶æããæ¹æ³ãç解ã§ããã°ãããã¯ããã«è¯ãããšã§ãã
ç§ã¯ãããŸã§ã«èŠã€ããhttps://github.com/chartinger/storybook/tree/app-vue3 ïŒäžèšã®ãã©ãŒã¯ããããã€ãã®å€æŽãå¿ èŠïŒã§ãã¥ãŒå®éšãè¡ããŸããïŒ
è¯ãïŒ
æªãïŒ
ãã®ä»ïŒ
@elevatebart vue3ã®vue-docgen-api
ã®ã¹ããŒã¿ã¹ã¯ã©ããªã£ãŠããŸããïŒ âïž
å šäœçã«äºææ§ããããŸãã ãã ããã»ããã¢ããæ©èœã§çºçããã€ãã³ãã¯ãŸã åŠçãããŠããŸããã
ãã®ããã«ãã»ããã¢ããæ©èœãå ¥åããŠãããã®æŸåºãæ€åºããããã®ããã©ãŒãã³ã¹ã®é«ãæ¹æ³ããŸã å¿ èŠã§ãã
é¢æ°ã¯è€æ°ã®ãã¡ã€ã«ã«å«ããããšãã§ãããããå°ãæéããããå ŽåããããŸãã
@chartingerã¯ãããã€ãã®å®éšã§ãã©ã³ããæŽæ°ãããã§ããïŒ ããªããèŠã€ãããå¶åŸ¡å±æ§ã®èªåæ€åºãã®åé¡ãæãäžãããã®ã§ããããããã誰ãã«ã¯ã©ã¹ã§è£ 食ãããåé¡ãèŠãŠãããããšãã§ããŸãã
@shilman vue-cliã«åºã¥ããŠvue3ã®äŸãè¿œå ãããã¿ã³ã®äŸãã³ã³ããžã·ã§ã³ãšã¯ã©ã¹apiã«ç§»è¡ããŸããïŒã³ãŒãã§ã¯ã¢ãããŒã·ã§ã³ãšåŒã³ãŸãããå€æŽããå¿ èŠããããŸãããä»ã¯å€æŽããŸãïŒã ã©ãããããããä»åããŒããããã¯ã©ã¹apiã³ã³ããŒãã³ãã
ãã¹ãã®ããã«ãããã«å¿ããŠnpm link
ãšnpm link @storybook/vue3
å¿ããªãã§ãã ããã
åèïŒ @andoshin11/storybook-vue3
ãnpmã«å
¬éããã°ãããªã®ã§ããæ°è»œã«è©ŠããŠã¿ãŠãã ããð
ãšããã§ãVue3ã¯æ£åŒã«ããŒã¿çã§ã¯ãããŸããã
PSã ã¹ããŒãªãŒããã¯@ andoshin11ã®ãã©ãŒã¯/ããŒãžã§ã³ãããããšã
//ç·šéïŒã¹ã¬ãããšçŽ æŽãããä»äºãèªãã§ãã ãã..ç§ã¯ãããæã€ãããããŸãã:)
ã¿ããªçŽ æŽãããä»äºã ããã6.1ãªãªãŒã¹ã«åãå ¥ããããšæããŸãã 誰ãããããåŒãåãããã§ããïŒ ããã¯éåžžã«å€§ããªåœ±é¿ãäžããè²¢ç®ã«ãªãã§ãããã çæ³çã«ã¯ãåãããã±ãŒãžã§vue3ãšvue2ããµããŒãããèªåæ€åºãŸãã¯ãŠãŒã¶ãŒæ§æãå®è¡ããŠã䜿çšããããŒãžã§ã³ãç¹å®ããŸãã
ãã®äœæ¥ã®ç¯å²ïŒ
ããã«åãçµã¿ããå Žåã¯ãç§ãã¡ã®äžåã«ã€ããŠç§ã«é£çµ¡ããŠãã ãã-ç§ã¯è°è«ããããã«#vue3
äžæãã£ãã«ãäœæããŸããïŒ https://discord.com/invite/UUt2PJb
https://github.com/storybookjs/storybook/issues/12632ã§è¡ãããäœæ¥ãå°ããã
Vue 3ã¯ããŒã¿çã§ã¯ãªããæ°ãæ以å
ã«latest
ã¿ã°ã§å©çšã§ããããã«ãªãã®ã§ãã¹ããŒãªãŒããã¯ã§Vue 3
ãµããŒãã«å©çšã§ããETAã¯ãããŸããïŒ
ãŸãã CHANGELOG
ã@storybook/vue
ã«è¿œå ãããšäŸ¿å©ã§ã-httpsïŒ//github.com/storybookjs/storybook/tree/master/app/vue ãã¢ã€ãã¢ãåŸãããšãã§ããŸã@storybook/vue
ããŒãžã§ã³ã§äœãå€ãã£ããã«ã€ããŠã
@palerdotã¹ããŒãªãŒããã¯6.1ã®äžéšãšããŠvue3ãµããŒããåºè·ããŠãããããã§ãã ããã«è²¢ç®ããŠããã人ãæ¢ããŠããŸã-èå³ããããŸããïŒ https://github.com/storybookjs/storybook/issues/10654#issuecomment -698200547
CHANGELOGã«é¢ããŠã¯ãã¢ãã¬ãå šäœã«1ã€ããããã¬ãŒã ã¯ãŒã¯ããšã«1ã€è¿œå ããã®ã¯çŸå®çã§ã¯ãããŸããã ãã ãããªãªãŒã¹ã®çºè¡šããšã«ãã¬ãŒã ã¯ãŒã¯åºæã®èŠçŽãäœæããããšãæ€èšããŸããããã¯ããããããŠãŒã¶ãŒãšããŠå®éã«å¿ èŠãªããšã§ãã
@shilman
ããã«è²¢ç®ããŠããã人ãæ¢ããŠããŸã-èå³ããããŸããïŒ
æ®å¿µãªãããç§ã¯çŸåšããã«æéãè²»ããããšãã§ããŸããïŒèšããŸã§ããªããç§ã¯storybook
ã³ãŒãããŒã¹ã«ããã»ã©ç²ŸéããŠããŸããïŒã
ãªãªãŒã¹ã®çºè¡šããšã«ãã¬ãŒã ã¯ãŒã¯åºæã®èŠçŽãäœæããããšãæ€èšããŸããããã¯ããããããŠãŒã¶ãŒãšããŠå®éã«å¿ èŠãªããšã§ãã
ããããšãããããŸããã ãã®ã»ããããã ããªãã¯æ£ããã§ãã ãŠãŒã¶ãŒãšããŠããªãªãŒã¹ããšã«ãµããŒããããŠãããã¬ãŒã ã¯ãŒã¯ïŒVue 3ãªã©ïŒãç¥ãããã ãã§ãã ãããã£ãŠããã®æ å ±ãã¡ã€ã³ã®CHANGELOGã«è¿œå ãããšäŸ¿å©ã§ãã
Vue3ãã¹ããŒãªãŒããã¯ã§ãåäœããããããŒã¿ãã€ã³ããããããããã ãã§ãã @Akryumã®ããã«ãVueã³ã¢/ããŒã«éçºè ã®
@shilman
ç§ã¯vue2ãšvue3ã§ã¹ããŒãªãŒããã¯ãæäœããããã®è§£æ±ºçãèŠã€ãããšæããŸãã ããŸãããã°æéãèŠã€ããããPOCãäœæããããšããŸã;-)ã çŽæããªãã ^^
ããããç§ã¯ãã§ã«ç§ã®èããå
±æããŠãããšæããŸããã
ç§ãèŠã€ãããŸããã Vueã®ããvue2ïŒvue3ã®ããã®äžã€ã®ããã±ãŒãžã䜿çšããŠåé¡ã解決ããããã«ææãªããã§ãã
ãã¡ãããcompostionapiã§å®è¡ããäœæ¥ã¯ãŸã ãããŸãã ããããç§ã¯ãã®ããã±ãŒãžã§ææãªããã±ãŒãžãžã®äžæ©ãèžã¿åºãããšæããŸã
ã¯ããããŸãããã°ã6.2ã§çéžããŸãã ãŸã ãããå®çŸãã誰ããæ¢ããŠããŸãïŒ
æãåèã«ãªãã³ã¡ã³ã
ã¯ããããŸãããã°ã6.2ã§çéžããŸãã ãŸã ãããå®çŸãã誰ããæ¢ããŠããŸãïŒ