mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-14 14:15:52 +03:00
3839a9bd15
Due to restrictions on how Electron package works, the `node_modules` should not be hoisted and not to use s/h-links at all. This is why we need to have two separate installs for electron and non-electron packages in the build. Tested via the following script ```bash #!/bin/bash echo "step 1: clean up" find . -name "node_modules" -prune -exec rm -rf '{}' + # git clean -dfX build_type=canary echo "step 2: install web dependencies" # firstly, build web static PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 SENTRYCLI_SKIP_DOWNLOAD=1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=1 yarn echo "step 3: generate assets" BUILD_TYPE="$build_type" yarn workspace @affine/electron generate-assets # cleanup node_modules find . -name "node_modules" -prune -exec rm -rf '{}' + echo "step 4: install electron dependencies" # install electron deps yarn config set nmHoistingLimits workspaces yarn config set enableScripts false yarn config set nmMode classic PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=0 yarn workspaces focus @affine/electron @affine/monorepo echo "step 5: build native" # build native yarn workspace @affine/native build yarn workspace @affine/storage build echo "step 6: build electron" # build electron yarn workspace @affine/electron build echo "step 7: package electron" # package SKIP_GENERATE_ASSETS=1 BUILD_TYPE="$build_type" HOIST_NODE_MODULES=1 yarn workspace @affine/electron package ``` |
||
---|---|---|
.. | ||
component | ||
core | ||
electron | ||
graphql | ||
hooks | ||
i18n | ||
native | ||
templates | ||
workspace |