feat(P0-A): 整合第一版并冻结最终发布 #1

Open
tuyixuan wants to merge 115 commits from codex/wp7-07 into codex/wp0-09
Showing only changes of commit b00500512e - Show all commits
+14 -2
View File
@@ -98,7 +98,11 @@ function copyRuntimeDependencies(sourceRoot, destinationRoot, rootNames) {
try {
entry = requireFrom.resolve(name);
} catch (error) {
throw new Error(`Runtime dependency ${name} is unavailable from ${sourceRoot}.`, { cause: error });
try {
entry = requireFrom.resolve(`${name}/package`);
} catch {
throw new Error(`Runtime dependency ${name} is unavailable from ${sourceRoot}.`, { cause: error });
}
}
const root = packageRootFromEntry(entry, name);
const manifest = json(join(root, "package.json"));
@@ -117,6 +121,14 @@ function copyRuntimeDependencies(sourceRoot, destinationRoot, rootNames) {
for (const dependency of Object.keys(manifest.dependencies ?? {})) {
copyResolved(dependency, nestedRequire, join(destination, "node_modules"), nestedAncestors);
}
for (const dependency of Object.keys(manifest.optionalDependencies ?? {})) {
try {
copyResolved(dependency, nestedRequire, join(destination, "node_modules"), nestedAncestors);
} catch (error) {
if (error?.cause?.code !== "MODULE_NOT_FOUND") throw error;
debug(`skip unavailable optional dependency ${dependency}`);
}
}
}
const rootRequire = createRequire(join(sourceRoot, "package.json"));
for (const name of rootNames) copyResolved(name, rootRequire, join(destinationRoot, "node_modules"), new Set());
@@ -306,7 +318,7 @@ export async function buildAndValidatePortablePackage({ evidenceDirectory, outpu
const serverRoot = join(packageDirectory, "server");
debug("copy API application");
const apiDependencies = copyApplication(join(repositoryRoot, "apps", "api"), join(serverRoot, "api"), ["@fastify/multipart", "@fastify/swagger", "@sinclair/typebox", "better-sqlite3", "fastify"]);
const apiDependencies = copyApplication(join(repositoryRoot, "apps", "api"), join(serverRoot, "api"), ["@fastify/multipart", "@fastify/swagger", "@sinclair/typebox", "better-sqlite3", "fastify", "sharp"]);
debug("copy Worker application");
const workerDependencies = copyApplication(join(repositoryRoot, "apps", "worker"), join(serverRoot, "worker"), ["better-sqlite3"]);
const sharedDestination = join(serverRoot, "api", "node_modules", "@dada", "shared-contracts");