fix: dereference node_modules symlink in runtime build
This commit is contained in:
@@ -138,14 +138,15 @@ async function copyNodeModules() {
|
|||||||
if (!(await exists(nodeModulesDir))) {
|
if (!(await exists(nodeModulesDir))) {
|
||||||
throw new Error(`缺少 node_modules 目录: ${nodeModulesDir}`);
|
throw new Error(`缺少 node_modules 目录: ${nodeModulesDir}`);
|
||||||
}
|
}
|
||||||
|
const resolvedNodeModulesDir = await fs.realpath(nodeModulesDir);
|
||||||
console.log('==> 拷贝生产运行依赖 node_modules');
|
console.log('==> 拷贝生产运行依赖 node_modules');
|
||||||
await copyDir(nodeModulesDir, path.join(runtimeRoot, 'node_modules'));
|
await copyDir(resolvedNodeModulesDir, path.join(runtimeRoot, 'node_modules'));
|
||||||
await rewriteNodeModulesSymlinks(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 内相对路径');
|
console.log('==> 重写 node_modules 顶层符号链接为 runtime 内相对路径');
|
||||||
const localNodeModulesRoot = `${nodeModulesDir}${path.sep}`;
|
const localNodeModulesRoot = `${sourceNodeModulesDir}${path.sep}`;
|
||||||
|
|
||||||
async function visit(dir) {
|
async function visit(dir) {
|
||||||
const entries = await fs.readdir(dir);
|
const entries = await fs.readdir(dir);
|
||||||
|
|||||||
Reference in New Issue
Block a user