From 0dff1ad2adda06c1b64cab353311ce98e5f279a4 Mon Sep 17 00:00:00 2001 From: yhh <359807859@qq.com> Date: Sun, 23 Nov 2025 22:36:54 +0800 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=E4=BF=AE=E5=A4=8D=20npm=20=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=97=B6=20workspace:*=20=E5=8D=8F=E8=AE=AE=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea3efca8..76bb49d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -85,6 +85,44 @@ jobs: cd packages/${{ github.event.inputs.package }} pnpm run build:npm + - name: Resolve workspace dependencies + run: | + cd packages/${{ github.event.inputs.package }}/dist + # Replace workspace:* with actual versions from monorepo + node -e " + const fs = require('fs'); + const path = require('path'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + + const resolveWorkspaceDeps = (deps) => { + if (!deps) return deps; + const resolved = {}; + for (const [name, version] of Object.entries(deps)) { + if (version.startsWith('workspace:')) { + // Get version from the actual package + const pkgName = name.replace('@esengine/', ''); + const pkgPath = path.join('..', '..', pkgName, 'package.json'); + if (fs.existsSync(pkgPath)) { + const depPkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); + resolved[name] = '^' + depPkg.version; + } else { + resolved[name] = version.replace('workspace:', ''); + } + } else { + resolved[name] = version; + } + } + return resolved; + }; + + pkg.dependencies = resolveWorkspaceDeps(pkg.dependencies); + pkg.devDependencies = resolveWorkspaceDeps(pkg.devDependencies); + pkg.peerDependencies = resolveWorkspaceDeps(pkg.peerDependencies); + + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n'); + console.log('Resolved workspace dependencies'); + " + - name: Publish to npm env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}