第69回 HTML5とか勉強会「UIフレームワーク最前線」の発表資料 https://html5j.connpass.com/event/89073/
Vue CLI v3HTML5J UIϑϨʔϜϫʔΫ࠷લઢ2018.06.19@kazupon
View Slide
ࣗݾհ
kazuponVue.js Core TeamVue.js japan users group organizervue-i18n, vuejs/jp.vuejs.org maintainerstorybook vue support memberCUUSOO SYSTEM CTO@kazu_pon kazupon
͡Ίʹ
ࠓ͢͜ͱ
Vue CLI v3
ࠓ͞ͳ͍͜ͱ
࠷৽ಈMANABIYAhttps://speakerdeck.com/kazupon/vue-dot-jsfalsejin-hou-toci-shi-dai-webkai-fa-nituite?slide=1
ͦΕͰΓ͍ͨͳΒ…Vue Contributor Dayshttps://www.youtube.com/watch?v=U38s3O1hh9k
·ͨ
ϩʔυϚοϓhttps://github.com/vuejs/roadmap
ࢀরͯ͠Լ͍͞
ݱࡏ RC.3 !·ͳ͘ϦϦʔεʂ
Vue CLI ͱ• Vue.js ΞϓϦ͚ͷ CLI ϕʔεͷ։ൃπʔϧ
ओͳಛ
https://cli.vuejs.org/Vue CLI ެࣜυΩϡϝϯτͷτοϓΑΓ
ͱɺ৭ʑͱ͋Γ·͕͢
v3 ͷۄ
v3 ͷۄ• ϓϥάΠϯγεςϜ• Vue CLI Ϣʔβʔͷ֦ுੑͷఏڙ• Vue CLI UI• CLI ͕ۤखͳϢʔβʔʹର͢Δαϙʔτ• UI APIͱUI ϓϥάΠϯγεςϜͷఏڙʹΑΔɺ͞ΒͳΔVue CLIͷ֦ுੑΛఏڙ͞ΒͳΔDXఏڙͷແݶͷՄೳੑ
ϓϥάΠϯγεςϜ
CLIϓϥάΠϯͷ࡞ͱར༻• جຊతʹҎԼͷAPIΛར༻࣮ͯ͢͠Δ• Service• Generator• Prompt• npmʹެ։͢Δ͜ͱͰɺϢʔβʔ͕ vue addͰΠϯετʔϧͯ͠ར༻͢Δ͜ͱ͕Ͱ͖Δ
CLIϓϥάΠϯͰग़དྷΔ͜ͱ• Service• webpackઃఆͷΧελϚΠζ• npm-scripts (via vue-cli-servie)ͷొhttps://cli.vuejs.org/dev-guide/plugin-dev.html#service-plugin
CLIϓϥάΠϯͰग़དྷΔ͜ͱ• Generator• ςϯϓϨʔτͷੜ• طଘςϯϓϨʔτͷΧελϚΠζhttps://cli.vuejs.org/dev-guide/plugin-dev.html#generator
CLIϓϥάΠϯͰग़དྷΔ͜ͱ• Prompts• ର༰ͷΧελϚΠζhttps://cli.vuejs.org/dev-guide/plugin-dev.html#prompts
CLIϓϥάΠϯͷྫ• ࠃࡍԽ(i18n)ͷΈΛಋೖ vue add i18nvue-cli-plugin-i18n my-app1scafollding&Env settings
CLIϓϥάΠϯͷϢʔεέʔε• Vue ͚ͷϥΠϒϥϦɺϑϨʔϜϫʔΫͷࣗಈΠϯετʔϧscafollding• ϓϩδΣΫτݻ༗ͷίʔυੜ• ϚΠάϨʔγϣϯπʔϧ• σϓϩΠπʔϧ• … ͳͲ
Vue CLI UI
Vue CLI UIͱʁ
CLI : Command line interfaceUI : User interface
Vue Command line interfaceUser interfaceVue CLI UI
– Evan You“Vue CLI UI is the UI for the CLI.”“༁: Vue CLICLI͚ͷUIͰ͢ɻ”
Vue CLI UI ͷ࡞ऀ• ίΞνʔϜGuillaume Chau ࢯ ͷౖᔶͷ։ൃʹΑΓരhttps://guillaume-chau.info/
Vue CLI UI ͷ UI vue uiίϚϯυ࣮ߦ…WebϒϥβʹGUIΞϓϦ͕ىಈ
Vue CLI UI Ͱग़དྷΔࣄ• Vue CLI ͷ CLI ϕʔεͰग़དྷΔࣄͻͱ௨ΓͰ͖Δ• ϓϩδΣΫτ࡞• CLIϓϥάΠϯՃ• ։ൃαʔόͷىಈ• ΞϓϦέʔγϣϯͷϏϧυ• webpackͷΠϯεϖΫγϣϯ …ͳͲ
ϓϩδΣΫτ࡞
։ൃαʔόͷىಈ
webpackͷΠϯεϖΫγϣϯ
CLI ൛ʹͳ͍ػೳͷఏڙ• GUIϕʔεͷಛੑΛੜ͔ͯ͠ɺҎԼͷΑ͏ͳ༷ʑͳػೳΛఏڙ͍ͯ͠Δ• ϓϩδΣΫτཧ• GUIϕʔεͷίϯϑΟάϨʔγϣϯ• CLIϓϥάΠϯͷݕࡧˍҰཡ• CLIϓϥάΠϯͷΞοϓσʔτ … ͳͲ
ϓϩδΣΫτཧ
GUIϕʔεͷίϯϑΟάϨʔγϣϯ
CLIϓϥάΠϯݕࡧˍҰཡ
Vue CLI UI ͷ֦ுੑ• Vue CLI UIͰϓϥάΠϯγεςϜΛαϙʔτ (ui.js | vue-cli-ui.js)• UI API ʹΑΓ VueCLI UIΛ֦ு͢Δ͜ͱ͕ग़དྷΔ
UI API ʹΑΓग़དྷΔ͜ͱ• ίϯϑΟάϨʔγϣϯͷΧελϚΠζ• λεΫͷΧελϚΠζ• ϓϩϯϓτͷΧελϚΠζ• ΫϥΠΞϯτΞυΦϯʹΑΔ֦ு• ΧελϜϏϡʔʹΑΔ֦ு
UI API ͕ఏڙ͢Δͷ• ΫϥΠΞϯτ/αʔόؒͷσʔλڞ༗• ϓϥάΠϯΞΫγϣϯ• IPC• ϩʔΧϧετϨʔδ• ϓϩάϨεදࣔ• ϑοΫɺαδΣενϣϯɺ௨ɺ… etc
ίϯϑΟάϨʔγϣϯͷΧελϚΠζ• UI API Ͱઃఆը໘ΧελϚΠζͰ͖Δ্هΑ͏ʹಠࣗʹίϯϑΟάϨʔγϣϯΛՃͯ͠ɺࡉ͔͘ΧελϚΠζͰ͖Δ
ίϯϑΟάϨʔγϣϯͷΧελϚΠζ• describeConfig Λར༻ͯ͠ίϯϑΟάϨʔγϣϯΛఆٛ͢Δ
• λεΫಉ༷UI APIͰΧελϚΠζͰ͖ΔλεΫͷΧελϚΠζ্هΑ͏ʹɺطଘͷpackage.jsonͷscriptsͷλεΫʹରͯ͠ΧελϚΠζͨ͠Γɺ৽نʹλεΫΛՃ͢Δ͜ͱͰ͖Δ
λεΫͷΧελϚΠζ• describeTaskΛར༻ͯ͠طଘͷλεΫͷΧελϚΠζ
λεΫͷΧελϚΠζ• λεΫύϥϝʔλʔఆٛ͢Δ͜ͱ͕Ͱ͖Δ
λεΫͷΧελϚΠζ• ಠࣗλεΫͷఆٛaddTaskΛར༻͢Δޙड़͢ΔΫϥΠΞϯτΞυΦϯΛར༻͢Δͱ͞ΒʹߴͳΧελϚΠζՄೳ
λεΫͷΧελϚΠζͷྫ• Vue CLI UI ͷ build
ΫϥΠΞϯτΞυΦϯ• ಠࣗͷVue ίϯϙʔωϯτΛVue CLI UI ͰΞυΦϯͱͯ͠ಈ࡞ͤ͞Δ͜ͱͰ֦ுͰ͖Δ
ΫϥΠΞϯτΞυΦϯ• ΫϥΠΞϯτΞυΦϯͰ࣮ͯ͠Vueίϯϙʔωϯτར༻Ͱ͖Δ෦• λεΫͷϏϡʔ• ΧελϜϏϡʔserve | build λεΫͷϏϡʔϓϩδΣΫτφϏήʔγϣϯʹΧελϜϏϡʔΛՃՄೳ
ΫϥΠΞϯτΞυΦϯͷ࡞Γํ• vue create ͰϓϩδΣΫτΛ࡞͠ɺઃఆΛ͢Δ vue create my-client-addon࡞ͨ͠ϓϩδΣΫτʹ্هͷΑ͏ͳvue.config.js ΛՃUI ϓϥάΠϯͱผʹ࡞Δ
ΫϥΠΞϯτΞυΦϯͷ࡞Γํ• main.js ΛҎԼͷΑ͏ʹɺClientAddon APIͰίϯϙʔωϯτΛొͨ͠ΓɺϧʔτΛఆٛ͢ΔΑ͏มߋ͢Δ
ΫϥΠΞϯτΞυΦϯͷ࡞Γํ• UIϓϥάΠϯͷ ui.js ͰҎԼͷΑ͏ʹΫϥΠΞϯτΞυΦϯΛొ
ΫϥΠΞϯτΞυΦϯͷ͍ํ• ޙίϯϙʔωϯτΛ༻Մೳͳ෦Ͱઃఆ͢Δ͚ͩ (ҎԼ λεΫϏϡʔͷྫ)
ΧελϜϏϡʔ• Vue CLI UI ͕ϢʔβʔʹΞϓϦͷΑ͏ͳ੍ޚՄೳͳΤϦΞΛఏڙ
ΧελϜϏϡʔͷՃํ๏• ΫϥΠΞϯτΞυΦϯͱ UI API ͷaddView Λར༻͢ΔΫϥΠΞϯτΞυΦϯUI ϓϥάΠϯ
Vue CLI UI ֦ுͷྫ• ࠃࡍԽ(i18n)ཧ
Vue CLI UI֦ுDEMO
ΧελϜϏϡʔͷϢʔεέʔε• ࠃࡍԽରԠ• Storybook ϥΠΫͳσβΠφͱڠۀͰ͖Δπʔϧ• Vue DevToolsϥΠΫͳσόοΪϯάπʔϧ• docz ϥΠΫͳυΩϡϝϯςʔγϣϯπʔϧ• … ͳͲ
ΧελϜϏϡʔͷՄೳੑ
·ͱΊ
• Vue CLI v3Ͱɺ͜Ε·Ͱͷ v2 Ͱͷɺݱঢ়ͷϑϩϯτΤϯυ։ൃπʔϧڥपΓͷਏ͍Λվળ͢ΔͨΊʹఏڙ͞ΕΔ• Vue ΞϓϦ։ൃϢʔβʔɺૉʹ Vue ެࣜʹఏڙ͢Δ Vue CLI Λར༻͢Δ͜ͱͰɺͤʹͳΕΔʂ• ։ൃπʔϧपΓͷߏஙɺπʔϧͷΞοϓάϨʔυɺVue CLI ɺͦͯ͠ϓϥάΠϯ͕ݟͯ͘ΕΔΑ͏ʹͳΔ·ͱΊ
• Vue CLI v3 ͷۄͱͯ͠ɺϓϥάΠϯγεςϜ ͱ Vue CLI UI• ͜ΕΒʹΑΓɺVue CLI ެࣜͰͷΓͳ͍ɺ։ൃڥΛڧԽ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ• ͜ͷ݁Ռɺ͞Βʹੜ࢈ੑͷߴ͍։ൃڥΛߏங͢Δ͜ͱ͕ՄೳʹͳΔ·ͱΊ
ͱ͍͏Θ͚ͰඇৗʹExcitingͳͷͰ
https://twitter.com/kazu_pon/status/998630153843437568
͍͖ͬͯ·͠ΐ͏ʂ
One more thing …
Vue Fes Japan 2018ۙʑɺCFPืूւ֎speakersใΛΞφϯε͢Δ༧ఆ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ