Storybook?7.0?Beta?Vue3踩坑解決記錄
故事背景
基于 Vue + Vite + TS 結(jié)合 pnpm 的一個 monorepo 項目的組件庫文檔編寫,起初個人是比較傾向于直接使用全家桶系列的 VitePress。無奈公司中其他庫文檔均使用 Storybook,并且已經(jīng)升級到最新版本。
好吧,到這里就基本知道了自己要做什么了。
由于之前也沒有接觸過這個玩意兒,就去看著官網(wǎng)一步步操作去了??右簿驮谶@里了,誰知道版本上去了,文檔卻沒有做出相應(yīng)的調(diào)整。然后就有了后續(xù)一系列的問題。Storybook 7.0 下載
坑一:
不要按照官網(wǎng)的下載指令一步步操作,因為這樣最終會下載 6.5 穩(wěn)定版
# 錯誤安裝方式 npx storybook init npx sb init # 正確安裝方式 npx storybook@next init npx sb@next init
坑二:
不要查找 vite 的創(chuàng)建項目方式,使用一些不明所以的命令。Storybook 會根據(jù)你項目技術(shù)棧創(chuàng)建出對應(yīng)的腳手架
# 錯誤命令 npx sb init --builder @storybook/builder-vite npx storybook init --builder vite
坑三:
7.0 的版本不要在 monorepo 的項目中創(chuàng)建除非是在根目錄
?ERR_PNPM_ADDING_TO_ROOT? Running this command will add the dependency to the workspace root, which might not be what you want - if you really meant it, make it explicit by running this command again with the -w flag (or --workspace-root). If you don't want to see this warning anymore, you may set the ignore-workspace-root-check setting to true. An error occurred while installing dependencies. ?ERROR? Command failed with exit code 1: /Users/a1234/Library/pnpm/store/v3/tmp/dlx-36847/node_modules/.bin/storybook init --package-manager=pnpm
so 我的解決方案就是創(chuàng)建一個 vite 的項目,然后在這個項目中去初始化 Storybook 然后將相關(guān)的命令、文件夾及 devDependencies 中相關(guān)的包全部 cv 到對應(yīng)的子項目中重新下載依賴即可使用。
具體操作如下:
pnpm create vite myApp --template vue-ts創(chuàng)建vite項目,隨后安裝依賴。pnpx storybook@next init --package-manager=pnpm- 將
package.json中關(guān)于Storybook的內(nèi)容進(jìn)行cv,包括scripts中的兩條指令,devDependencies中的一些包,項目中的兩個目錄。 - 復(fù)制到對應(yīng)的
monorepo的子項目中,刪除子項目原有的node_modeules重新執(zhí)行pnpm install即可。
注意:
- 不要嘗試使用
--type vue3類似的指令創(chuàng)建對應(yīng)的項目,大概率不會成功。 Storybook默認(rèn)使用yarn作為包管理工具,如果想要切換執(zhí)行指令時末尾增加--package-manager=pnpm
總結(jié)
目前來看經(jīng)過上面一系列的摸索過后,本地測試,打包都沒有什么問題,就看后續(xù)部署了。如果后續(xù)在使用過程中碰到其他問題也會持續(xù)在這里進(jìn)行更新。
以上就是Storybook 7.0 Beta Vue3踩坑隨筆的詳細(xì)內(nèi)容,更多關(guān)于Storybook 7.0 Beta Vue3的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Vue3-KeepAlive,多個頁面使用keepalive方式
這篇文章主要介紹了Vue3-KeepAlive,多個頁面使用keepalive方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
Vscode關(guān)閉Eslint語法檢查的多種方式(保證有效)
eslint是一個JavaScript的校驗插件,通常用來校驗語法或代碼的書寫風(fēng)格,下面這篇文章主要給大家介紹了關(guān)于Vscode關(guān)閉Eslint語法檢查的多種方式,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
如何在 Vue3 中使用 OpenLayers 實現(xiàn)事件 loadst
在這篇文章中,我將詳細(xì)介紹如何在 Vue3 + OpenLayers 中監(jiān)聽 loadstart 和 loadend 事件,并通過 Vue3 Composition API 進(jìn)行代碼優(yōu)化,使其更加高效、健壯,感興趣的朋友一起看看吧2025-04-04
vue項目引入遠(yuǎn)程jweixin-1.2.0.js文件并使用詳解
這篇文章主要介紹了vue項目引入遠(yuǎn)程jweixin-1.2.0.js文件并使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03

