



























@@ -353,22 +353,34 @@ function installPackageLocalBundledDependencies(params) {
353353354354console.error(`[plugin-npm-publish] installing bundled dependencies for ${params.pluginDir}`);
355355const packageJsonPath = resolvePackageJsonPath(params.packageDir);
356-const publishPackageJsonText = fs.readFileSync(packageJsonPath, "utf8");
356+const packedPackageJsonText = fs.readFileSync(packageJsonPath, "utf8");
357+const installPackageJsonBase = {
358+ ...params.packageJson,
359+};
360+delete installPackageJsonBase.peerDependencies;
361+delete installPackageJsonBase.peerDependenciesMeta;
362+const installPackageJson = packageJsonForShrinkwrap(
363+installPackageJsonBase,
364+readShrinkwrapOverrides(),
365+);
366+const installPackageJsonText = `${JSON.stringify(installPackageJson, null, 2)}\n`;
367+if (installPackageJsonText !== packedPackageJsonText) {
368+// npm validates peer edges against the shrinkwrap during ci even when peers are omitted.
369+// The peer metadata belongs in the packed plugin, not in this temporary dependency install.
370+fs.writeFileSync(packageJsonPath, installPackageJsonText, "utf8");
371+}
357372try {
358-const installPackageJson = packageJsonForShrinkwrap(packageJson, readShrinkwrapOverrides());
359-const installPackageJsonText = `${JSON.stringify(installPackageJson, null, 2)}\n`;
360-if (installPackageJsonText !== publishPackageJsonText) {
361-fs.writeFileSync(packageJsonPath, installPackageJsonText, "utf8");
362-}
363373const result = spawnNpmSync(
364374[
365375"ci",
376+"--install-strategy=shallow",
366377"--omit=dev",
367378"--omit=peer",
368379"--legacy-peer-deps",
369380"--ignore-scripts",
370381"--no-audit",
371382"--no-fund",
383+"--workspaces=false",
372384"--loglevel=error",
373385],
374386{
@@ -387,7 +399,7 @@ function installPackageLocalBundledDependencies(params) {
387399}
388400installMissingOptionalBundledDependencies(params);
389401} finally {
390-fs.writeFileSync(packageJsonPath, publishPackageJsonText, "utf8");
402+fs.writeFileSync(packageJsonPath, packedPackageJsonText, "utf8");
391403}
392404return () => {
393405fs.rmSync(nodeModulesPath, { recursive: true, force: true });
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。