1
0
forked from baron/baron-sso

공유 node_modules 설치 충돌 방지

This commit is contained in:
2026-05-19 15:13:36 +09:00
parent 611730f22a
commit 598f6ff9d1
4 changed files with 69 additions and 21 deletions

View File

@@ -51,6 +51,21 @@ ensure_frontend_dependencies() {
return 0
fi
acquire_install_lock() {
lock_file="$WORKSPACE_DIR/.baron-deps-install.lock"
if command -v flock >/dev/null 2>&1; then
exec 9>"$lock_file"
flock 9
return 0
fi
while ! mkdir "$lock_file" 2>/dev/null; do
sleep 1
done
trap 'rmdir "$lock_file" >/dev/null 2>&1 || true' EXIT INT TERM
}
if command -v sha256sum >/dev/null 2>&1; then
deps_hash="$(sha256sum "$WORKSPACE_DIR/package.json" "$LOCK_FILE" 2>/dev/null | sha256sum | awk '{print $1}')"
else
@@ -61,6 +76,7 @@ ensure_frontend_dependencies() {
if [ "$installed_hash" != "$deps_hash" ]; then
echo "Installing frontend dependencies..."
acquire_install_lock
if [ "$WORKSPACE_DIR" = "/workspace/common" ]; then
(cd /workspace/common && pnpm install --filter "${APP_WORKSPACE_FILTER}..." --frozen-lockfile --ignore-scripts)
else

View File

@@ -2423,9 +2423,9 @@
"license": "MIT"
},
"node_modules/@tanstack/query-core": {
"version": "5.100.10",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.100.10.tgz",
"integrity": "sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==",
"version": "5.100.11",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.100.11.tgz",
"integrity": "sha512-lmE0994apShXPj8CUxgx4ch5yUJhE9k/+tVwihBvPOyerACWdBocfFg24t8+0RhtlTd7tEgchDkhlCxNssvDxw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2433,9 +2433,9 @@
}
},
"node_modules/@tanstack/query-devtools": {
"version": "5.100.10",
"resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.100.10.tgz",
"integrity": "sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==",
"version": "5.100.11",
"resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.100.11.tgz",
"integrity": "sha512-47rVBDuGMW/A4ekt3YQdz+q0JSIwktwGnWCYyQUvSs2/g/Oa+6Fi2/IQk4/Y4vf6u1uwI7hOogHslgMC8f3X/Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2443,12 +2443,12 @@
}
},
"node_modules/@tanstack/react-query": {
"version": "5.100.10",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.100.10.tgz",
"integrity": "sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==",
"version": "5.100.11",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.100.11.tgz",
"integrity": "sha512-J0f9s5x3LE1450nNNfYx+e/n0DMa0uOBdFJUy5r0RvmsXd4nB/n0rbHtHI1vYXhikNFan+wf51p6Tmp4c8ucrg==",
"license": "MIT",
"dependencies": {
"@tanstack/query-core": "5.100.10"
"@tanstack/query-core": "5.100.11"
},
"funding": {
"type": "github",
@@ -2459,19 +2459,19 @@
}
},
"node_modules/@tanstack/react-query-devtools": {
"version": "5.100.10",
"resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.100.10.tgz",
"integrity": "sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==",
"version": "5.100.11",
"resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.100.11.tgz",
"integrity": "sha512-75RFlJEG53Ed/Cxe5WLmgIpOElPNpgLZq7h0fLFnM5XwTYxSTk1rX/gC6MqGVXsSdrbP7zn7hPSJx9MinwiUHA==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.100.10"
"@tanstack/query-devtools": "5.100.11"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
"@tanstack/react-query": "^5.100.10",
"@tanstack/react-query": "^5.100.11",
"react": "^18 || ^19"
}
},
@@ -2798,9 +2798,9 @@
}
},
"node_modules/baseline-browser-mapping": {
"version": "2.10.30",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.30.tgz",
"integrity": "sha512-xjOFN16Ha1+Rz4nFYKqHU/LSB+gx/Vi3yQLX7r7sAW+Wa+8hhF2h4pvqTrTMc8+WcDBEunnUurr46Jvv0jk3Vg==",
"version": "2.10.31",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.31.tgz",
"integrity": "sha512-MujYO3eP72uvmSE0i4wltsodRfIpZATP3jvzRNRGGxgzId7aVocVJJV3nf01qnzzKFGxQVC9bpWxl5cjxTr/7Q==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -3164,9 +3164,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.357",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.357.tgz",
"integrity": "sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==",
"version": "1.5.359",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.359.tgz",
"integrity": "sha512-8lPELWuYZIWk7NDvCNthtmMw/7Q5Wu25NpM4djFMHBmk8DubPAtL4YTOp7ou0e7HyJtwkVlWv8XMLURnrtgJQw==",
"dev": true,
"license": "ISC"
},

View File

@@ -51,6 +51,21 @@ ensure_frontend_dependencies() {
return 0
fi
acquire_install_lock() {
lock_file="$WORKSPACE_DIR/.baron-deps-install.lock"
if command -v flock >/dev/null 2>&1; then
exec 9>"$lock_file"
flock 9
return 0
fi
while ! mkdir "$lock_file" 2>/dev/null; do
sleep 1
done
trap 'rmdir "$lock_file" >/dev/null 2>&1 || true' EXIT INT TERM
}
if command -v sha256sum >/dev/null 2>&1; then
deps_hash="$(sha256sum "$WORKSPACE_DIR/package.json" "$LOCK_FILE" 2>/dev/null | sha256sum | awk '{print $1}')"
else
@@ -61,6 +76,7 @@ ensure_frontend_dependencies() {
if [ "$installed_hash" != "$deps_hash" ]; then
echo "Installing frontend dependencies..."
acquire_install_lock
if [ "$WORKSPACE_DIR" = "/workspace/common" ]; then
(cd /workspace/common && pnpm install --filter "${APP_WORKSPACE_FILTER}..." --frozen-lockfile --ignore-scripts)
else

View File

@@ -51,6 +51,21 @@ ensure_frontend_dependencies() {
return 0
fi
acquire_install_lock() {
lock_file="$WORKSPACE_DIR/.baron-deps-install.lock"
if command -v flock >/dev/null 2>&1; then
exec 9>"$lock_file"
flock 9
return 0
fi
while ! mkdir "$lock_file" 2>/dev/null; do
sleep 1
done
trap 'rmdir "$lock_file" >/dev/null 2>&1 || true' EXIT INT TERM
}
if command -v sha256sum >/dev/null 2>&1; then
deps_hash="$(sha256sum "$WORKSPACE_DIR/package.json" "$LOCK_FILE" 2>/dev/null | sha256sum | awk '{print $1}')"
else
@@ -61,6 +76,7 @@ ensure_frontend_dependencies() {
if [ "$installed_hash" != "$deps_hash" ]; then
echo "Installing frontend dependencies..."
acquire_install_lock
if [ "$WORKSPACE_DIR" = "/workspace/common" ]; then
(cd /workspace/common && pnpm install --filter "${APP_WORKSPACE_FILTER}..." --frozen-lockfile --ignore-scripts)
else