這是一個單一的repo 。它包含幾個軟件包,全部由頂級packages.json控制。
每個項目都有其自己的package.json包含特定包裝的json文件,但是不要從軟件包項目中運行yarn install ;而是從頂級運行。
如果您從軟件包中運行yarn install那麼您可能會遇到這樣的無用錯誤:
Error: ENOENT: no such file or directory, symlink '…fozzie-componentspackages…' -> '…fozzie-componentsnode_modules@justeat…'
如果發生這種情況,請在整個過程中刪除所有node_modules文件夾,然後再次從根目錄中運行yarn install 。
在某些極少數情況下,組件中指定的package.json中指定的模塊。 json文件有時無法正確解決 /安裝。這可能會導致錯誤:示例錯誤:找不到以下模塊,請運行yarn add @moduleName以安裝它。
您可以從項目的根源中嘗試兩種解決方案,可以解決此問題:
TurborePo是一種針對JavaScript和Typescript代碼庫進行優化的智能構建系統。我們使用turborepo來促進pie monorepo中所有構建腳本的執行。
為了加快本地開發 / CI工作流程,我們使用TurborePo的遠程緩存功能將構建工件發佈到AWS S3。這樣可以確保僅修改的軟件包才執行其構建任務。
為了利用此功能,您必須在本地計算機上設置TURBO_TOKEN環境變量。請與Design System團隊聯繫以獲取這個令牌的價值。
啟用後,執行軟件包節點任務時,您會看到“啟用遠程緩存”。
建議在MonorePo的根部運行以下任務,以確保執行所需組件的任務:
build test lint
對於其他測試任務,您可以通過多種方式執行:
# Run Component tests for all components
# Note: Ensure Storybook is not running when running the following commands
cd ./fozzie-components
yarn storybook:build
yarn storybook:serve-static
yarn test-component:chrome或者
# Run Component tests for individual f-* package
# Note: Ensure Storybook is not running when running the following commands
cd ./fozzie-components
yarn storybook:build
yarn storybook:serve-static
# And in another window
yarn test-component:chrome --filter=@justeat/f-user-message我們在Fozzie中創建了幾個可選的Mixin助手。這是如何使用它的示例:
注意:如果您在sfc上啟用了module ,則導入可選的mixin並在common.scss文件中使用@include 。
< style lang="scss" module>
@include pageBanner () ;
</ style >您可以將可重複使用的樣式添加到common.scss文件中。這對於使用子組件並希望共享混合素,功能和變量的組件可能很有用。
每個組件都帶有一個vue.config.js文件,該文件使common.scss文件在名稱空間中可用common :
`@use "../assets/scss/common.scss";`
要從公共文件中訪問任何內容,只需像這樣的值前綴:
// Fake values used for demonstration
.someClass {
color: common.$fontColor;
line-height: common.line-height();
@include common.truncate();
}
您可以通過使用@use "../assets/scss/common.scss" as *之類的內容來消除對命名空間的需求,但是使用命名空間使您更容易理解值的來自何處。
要首先運行Storybook,您必須在頂級運行以下內容
yarn build以構建需要包裝的包裹以供故事書運行。
然後運行yarn storybook:serve啟動Storybook,該書將在localhost:8080上開放。
另外,您可以運行yarn build:changed和yarn storybook:serve-changed以查看您正在處理的組件以及任何依賴性 /依賴者。
如果您希望在開發過程中查看Storybook中的單個組件,則可以通過打開IDE中的組件*.stories.js文件並運行Storybook - Run Currently Open Story File任務,可以在左側的“調試”選項卡中找到。 (這僅適用於VS代碼)。
這特別是有用的,因為它可以防止故事書插入其他組件樣式表的錯誤(請參見此處)。
我們使用沙啞來管理git鉤。
當您提交提交時,以下腳本將作為我們預先承諾的掛鉤的一部分運行。
如果您想跳過此赫斯基鉤子,只需在提交提交時添加--no-verify參數即可。
例如: git commit -m "Refactor f-button" --no-verify 。
有關如何為此回購做出貢獻的更多信息,請參見我們的故事書文檔部分
Fozzie組件最初是在VUE 2中撰寫的。為了確保它們在VUE 3應用程序中工作,請在Compat模式下運行VUE 3。