diff --git a/scripts/build-portal-runtime.mjs b/scripts/build-portal-runtime.mjs index 655cd20..67e6bba 100755 --- a/scripts/build-portal-runtime.mjs +++ b/scripts/build-portal-runtime.mjs @@ -138,14 +138,15 @@ async function copyNodeModules() { if (!(await exists(nodeModulesDir))) { throw new Error(`缺少 node_modules 目录: ${nodeModulesDir}`); } + const resolvedNodeModulesDir = await fs.realpath(nodeModulesDir); console.log('==> 拷贝生产运行依赖 node_modules'); - await copyDir(nodeModulesDir, path.join(runtimeRoot, 'node_modules')); - await rewriteNodeModulesSymlinks(path.join(runtimeRoot, 'node_modules')); + await copyDir(resolvedNodeModulesDir, path.join(runtimeRoot, 'node_modules')); + await rewriteNodeModulesSymlinks(path.join(runtimeRoot, 'node_modules'), resolvedNodeModulesDir); } -async function rewriteNodeModulesSymlinks(runtimeNodeModulesDir) { +async function rewriteNodeModulesSymlinks(runtimeNodeModulesDir, sourceNodeModulesDir) { console.log('==> 重写 node_modules 顶层符号链接为 runtime 内相对路径'); - const localNodeModulesRoot = `${nodeModulesDir}${path.sep}`; + const localNodeModulesRoot = `${sourceNodeModulesDir}${path.sep}`; async function visit(dir) { const entries = await fs.readdir(dir);